Finished making successful path for event controls
This commit is contained in:
8
Assets/Model.meta
Normal file
8
Assets/Model.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 477280fac62d2934f9d0aa49bedf3251
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
26
Assets/Model/EventControlTile.cs
Normal file
26
Assets/Model/EventControlTile.cs
Normal file
@@ -0,0 +1,26 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Tilemaps;
|
||||
|
||||
namespace Assets.Model
|
||||
{
|
||||
public class EventControlTile
|
||||
{
|
||||
public KeyCode keyCode;
|
||||
public Tile tile;
|
||||
public Tile successTile;
|
||||
public Vector3Int position;
|
||||
|
||||
public EventControlTile(KeyCode keyCode, Tile tile, Tile successTile, Vector3Int position)
|
||||
{
|
||||
this.keyCode = keyCode;
|
||||
this.tile = tile;
|
||||
this.successTile = successTile;
|
||||
this.position = position;
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/Model/EventControlTile.cs.meta
Normal file
11
Assets/Model/EventControlTile.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 651afb7ac1f7a324b8b21db2b04ff151
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -167,9 +167,10 @@ MonoBehaviour:
|
||||
m_EditorClassIdentifier:
|
||||
camera: {fileID: 1337282922}
|
||||
tile: {fileID: 11400000, guid: 7ece7857530facb42b843eed2526c86a, type: 2}
|
||||
successTile: {fileID: 11400000, guid: 6cf7a50810d16f2468acc06180743d07, type: 2}
|
||||
framesPerControlTile: 15
|
||||
nextControlYOffset: 4
|
||||
nextControlXOffset: 1.5
|
||||
nextControlXOffset: 2.5
|
||||
--- !u!483693784 &1491656
|
||||
TilemapRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -389,7 +390,7 @@ MonoBehaviour:
|
||||
m_EditorClassIdentifier:
|
||||
player: {fileID: 1671840916}
|
||||
offsetY: 2
|
||||
interpolate: 0.1
|
||||
interpolate: 0.6
|
||||
--- !u!4 &1146013793 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 5711328081315814049, guid: fe8fb0c1c30f84b43885e84de26e0f11,
|
||||
|
||||
130
Assets/Scripts/EventControls.cs
Normal file
130
Assets/Scripts/EventControls.cs
Normal file
@@ -0,0 +1,130 @@
|
||||
using Assets.Model;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Tilemaps;
|
||||
|
||||
public class EventControls : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private Camera camera;
|
||||
[SerializeField] private Tile tile;
|
||||
[SerializeField] private Tile successTile;
|
||||
[SerializeField] private float framesPerControlTile = 15;
|
||||
[SerializeField] private float nextControlYOffset = 0;
|
||||
[SerializeField] private float nextControlXOffset = 0;
|
||||
[SerializeField] private float tileMapClearDelayInSeconds = 0.5f;
|
||||
|
||||
private Tilemap tilemap;
|
||||
|
||||
/* For drawing event control tiles */
|
||||
private Vector3Int? initialCameraPosition;
|
||||
private int maxNumberOfControlTiles = 3;
|
||||
private int numberOfControlTilesSet = 0;
|
||||
private int nextControlAccumalator = 0;
|
||||
|
||||
private bool eventDrawn = false;
|
||||
private bool eventTriggered = false;
|
||||
private int eventCycleInSeconds = 4;
|
||||
private int eventCycleAccumalator = 0;
|
||||
private int tileMapClearDelayAccumalator = 0;
|
||||
private EventControlTile currentEventControl;
|
||||
|
||||
private Queue<EventControlTile> eventControlTilesInCycle;
|
||||
|
||||
private int framesPerSecond => 60;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
tilemap = GetComponent<Tilemap>();
|
||||
eventControlTilesInCycle = new Queue<EventControlTile>();
|
||||
eventTriggered = true; // TODO: TEST
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (eventTriggered)
|
||||
{
|
||||
SetTile();
|
||||
SetTileMapPosition();
|
||||
}
|
||||
else
|
||||
{
|
||||
nextControlAccumalator = 0;
|
||||
}
|
||||
|
||||
if (eventDrawn && eventTriggered)
|
||||
{
|
||||
if (currentEventControl == null)
|
||||
currentEventControl = eventControlTilesInCycle.Dequeue();
|
||||
|
||||
if (Input.GetKeyDown(currentEventControl.keyCode))
|
||||
{
|
||||
tilemap.SetTile(currentEventControl.position, currentEventControl.successTile);
|
||||
|
||||
currentEventControl = null;
|
||||
if (eventControlTilesInCycle.Count == 0)
|
||||
{
|
||||
eventTriggered = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (eventDrawn && !eventTriggered)
|
||||
{
|
||||
if (tileMapClearDelayAccumalator >= tileMapClearDelayInSeconds * framesPerSecond)
|
||||
{
|
||||
tilemap.ClearAllTiles();
|
||||
tileMapClearDelayAccumalator = 0;
|
||||
eventDrawn = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
tileMapClearDelayAccumalator++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void SetTile()
|
||||
{
|
||||
if (nextControlAccumalator >= framesPerControlTile && numberOfControlTilesSet < maxNumberOfControlTiles)
|
||||
{
|
||||
if (initialCameraPosition == null)
|
||||
initialCameraPosition = GetCameraPosition();
|
||||
|
||||
// Store tiles for event cycle
|
||||
var eventControlTile = new EventControlTile(KeyCode.W, tile, successTile, GetNextTilePosition()); /* TODO: Hard code */
|
||||
eventControlTilesInCycle.Enqueue(eventControlTile);
|
||||
|
||||
tilemap.SetTile(eventControlTile.position, tile);
|
||||
|
||||
nextControlAccumalator = 0;
|
||||
numberOfControlTilesSet++;
|
||||
}
|
||||
else if (numberOfControlTilesSet == maxNumberOfControlTiles)
|
||||
{
|
||||
initialCameraPosition = null;
|
||||
eventDrawn = true;
|
||||
}
|
||||
|
||||
nextControlAccumalator++;
|
||||
}
|
||||
|
||||
private Vector3Int GetCameraPosition()
|
||||
{
|
||||
return new Vector3Int((int)camera.transform.position.x,
|
||||
(int)camera.transform.position.y,
|
||||
(int)camera.transform.position.z);
|
||||
}
|
||||
|
||||
private Vector3Int GetNextTilePosition()
|
||||
{
|
||||
return (initialCameraPosition + new Vector3Int(numberOfControlTilesSet, 0, 0))
|
||||
.GetValueOrDefault();
|
||||
}
|
||||
|
||||
private void SetTileMapPosition()
|
||||
{
|
||||
transform.position = camera.transform.position +
|
||||
new Vector3(nextControlXOffset, nextControlYOffset, 0); // offset
|
||||
}
|
||||
}
|
||||
@@ -1,71 +0,0 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Tilemaps;
|
||||
|
||||
public class EventControlsDisplay : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private Camera camera;
|
||||
[SerializeField] private Tile tile;
|
||||
[SerializeField] private float framesPerControlTile = 15;
|
||||
[SerializeField] private float nextControlYOffset = 0;
|
||||
[SerializeField] private float nextControlXOffset = 0;
|
||||
|
||||
private Tilemap tilemap;
|
||||
private int maxNumberOfControlTiles = 3;
|
||||
private int numberOfControlTilesSet = 0;
|
||||
private Vector3Int? initialCameraPosition;
|
||||
private int nextControlAccumalator = 0;
|
||||
|
||||
private int framePerSecond => 60;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
tilemap = GetComponent<Tilemap>();
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
SetTile();
|
||||
SetTileMapPosition();
|
||||
|
||||
nextControlAccumalator++;
|
||||
}
|
||||
|
||||
private void SetTile()
|
||||
{
|
||||
if (nextControlAccumalator >= framesPerControlTile && numberOfControlTilesSet < maxNumberOfControlTiles)
|
||||
{
|
||||
if (initialCameraPosition == null)
|
||||
initialCameraPosition = GetCameraPosition();
|
||||
|
||||
tilemap.SetTile(GetNextTilePosition(), tile);
|
||||
|
||||
nextControlAccumalator = 0;
|
||||
numberOfControlTilesSet++;
|
||||
}
|
||||
else if (numberOfControlTilesSet == maxNumberOfControlTiles)
|
||||
{
|
||||
initialCameraPosition = null;
|
||||
}
|
||||
}
|
||||
|
||||
private Vector3Int GetCameraPosition()
|
||||
{
|
||||
return new Vector3Int((int) camera.transform.position.x,
|
||||
(int) camera.transform.position.y,
|
||||
(int) camera.transform.position.z);
|
||||
}
|
||||
|
||||
private Vector3Int GetNextTilePosition()
|
||||
{
|
||||
return (initialCameraPosition + new Vector3Int(numberOfControlTilesSet, 0, 0))
|
||||
.GetValueOrDefault();
|
||||
}
|
||||
|
||||
private void SetTileMapPosition()
|
||||
{
|
||||
transform.position = camera.transform.position +
|
||||
new Vector3(nextControlXOffset, nextControlYOffset, 0); // offset
|
||||
}
|
||||
}
|
||||
@@ -107,7 +107,7 @@ public class Player : MonoBehaviour
|
||||
private void HandleAnimations()
|
||||
{
|
||||
animator.SetBool("IsRunning", Mathf.Abs(rigidBody.velocity.x) > float.Epsilon);
|
||||
animator.SetBool("IsOnGround", IsPlayerOnGround());
|
||||
animator.SetBool("IsGround", IsPlayerOnGround());
|
||||
animator.SetFloat("YVelocity", rigidBody.velocity.y);
|
||||
}
|
||||
}
|
||||
|
||||
36
Assets/Sprites/Controls/Control W Success.asset
Normal file
36
Assets/Sprites/Controls/Control W Success.asset
Normal file
@@ -0,0 +1,36 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 13312, guid: 0000000000000000e000000000000000, type: 0}
|
||||
m_Name: Control W Success
|
||||
m_EditorClassIdentifier:
|
||||
m_Sprite: {fileID: 21300000, guid: 7c63d0c80ca19b944a6838f2becbc094, type: 3}
|
||||
m_Color: {r: 0.066082224, g: 0.9339623, b: 0.12693371, a: 1}
|
||||
m_Transform:
|
||||
e00: 1
|
||||
e01: 0
|
||||
e02: 0
|
||||
e03: 0
|
||||
e10: 0
|
||||
e11: 1
|
||||
e12: 0
|
||||
e13: 0
|
||||
e20: 0
|
||||
e21: 0
|
||||
e22: 1
|
||||
e23: 0
|
||||
e30: 0
|
||||
e31: 0
|
||||
e32: 0
|
||||
e33: 1
|
||||
m_InstancedGameObject: {fileID: 0}
|
||||
m_Flags: 1
|
||||
m_ColliderType: 1
|
||||
8
Assets/Sprites/Controls/Control W Success.asset.meta
Normal file
8
Assets/Sprites/Controls/Control W Success.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6cf7a50810d16f2468acc06180743d07
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -85,6 +85,15 @@ Tilemap:
|
||||
m_GameObject: {fileID: 7903917978724306658}
|
||||
m_Enabled: 1
|
||||
m_Tiles:
|
||||
- first: {x: -2, y: 1, z: 0}
|
||||
second:
|
||||
m_TileIndex: 1
|
||||
m_TileSpriteIndex: 0
|
||||
m_TileMatrixIndex: 0
|
||||
m_TileColorIndex: 0
|
||||
m_ObjectToInstantiate: {fileID: 0}
|
||||
m_TileFlags: 1
|
||||
m_ColliderType: 1
|
||||
- first: {x: 0, y: 1, z: 0}
|
||||
second:
|
||||
m_TileIndex: 0
|
||||
@@ -98,11 +107,13 @@ Tilemap:
|
||||
m_TileAssetArray:
|
||||
- m_RefCount: 1
|
||||
m_Data: {fileID: 11400000, guid: 7ece7857530facb42b843eed2526c86a, type: 2}
|
||||
m_TileSpriteArray:
|
||||
- m_RefCount: 1
|
||||
m_Data: {fileID: 11400000, guid: 6cf7a50810d16f2468acc06180743d07, type: 2}
|
||||
m_TileSpriteArray:
|
||||
- m_RefCount: 2
|
||||
m_Data: {fileID: 21300000, guid: 7c63d0c80ca19b944a6838f2becbc094, type: 3}
|
||||
m_TileMatrixArray:
|
||||
- m_RefCount: 1
|
||||
- m_RefCount: 2
|
||||
m_Data:
|
||||
e00: 1
|
||||
e01: 0
|
||||
@@ -121,12 +132,12 @@ Tilemap:
|
||||
e32: 0
|
||||
e33: 1
|
||||
m_TileColorArray:
|
||||
- m_RefCount: 1
|
||||
- m_RefCount: 2
|
||||
m_Data: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_AnimationFrameRate: 1
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_Origin: {x: 0, y: 0, z: 0}
|
||||
m_Size: {x: 1, y: 2, z: 1}
|
||||
m_Origin: {x: -2, y: 0, z: 0}
|
||||
m_Size: {x: 3, y: 2, z: 1}
|
||||
m_TileAnchor: {x: 0.5, y: 0.5, z: 0}
|
||||
m_TileOrientation: 0
|
||||
m_TileOrientationMatrix:
|
||||
|
||||
Reference in New Issue
Block a user