public IEnumerator MoveTo(Logic.TilePosition dest) { var animator = GetComponent <Animator>(); if (animator != null) { if (mTile.Position.Row > dest.Row) { animator.SetInteger("direction", (int)EDisplayDirection.Down); } else if (mTile.Position.Row < dest.Row) { animator.SetInteger("direction", (int)EDisplayDirection.Up); } if (mTile.Position.Col > dest.Col) { animator.SetInteger("direction", (int)EDisplayDirection.Left); } else if (mTile.Position.Col < dest.Col) { animator.SetInteger("direction", (int)EDisplayDirection.Right); } } yield return(new WaitForMoveTo(gameObject, dest, 0.5f)); }
public WaitForMoveTo(GameObject gameobject, Logic.TilePosition destination, float time) { mGameObject = gameobject; mBeginPosition = gameobject.transform.localPosition; mEndPosition = new Vector3(destination.Col, destination.Row, 0); mTime = 0; mDuration = time; }
private bool PosField(Dictionary <string, object> properties, string key, out Logic.TilePosition pos) { EditorGUILayout.BeginVertical(); EditorGUILayout.LabelField(key); var origin = (Logic.TilePosition)properties[key]; EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Row"); pos.Row = (uint)EditorGUILayout.IntField((int)origin.Row); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Col"); pos.Col = (uint)EditorGUILayout.IntField((int)origin.Col); EditorGUILayout.EndHorizontal(); EditorGUILayout.EndVertical(); return(pos.Row != origin.Row || pos.Col != origin.Col); }
public static GameObject CreateTile(Logic.EProtalDirection direction, uint dst_lv, Logic.TilePosition dst_pos) { var obj = new GameObject(direction == Logic.EProtalDirection.Down ? "stair_down" : "stair_up"); obj.layer = 1; var renderer = obj.AddComponent <SpriteRenderer>(); renderer.sprite = GetSprite(direction); var tile = obj.AddComponent <EditorData.Tile>(); tile.TileType = Logic.Tile.EType.Portal; tile.Properties["Direction"] = direction; tile.Properties["DestLevel"] = dst_lv; tile.Properties["DestPos"] = dst_pos; return(obj); }