表示できるようになったスプライトを任意の位置に表示したり、アニメーション(カードの表裏を切り替える)を任意に発動するには、しシーン内オブジェクトに対して、スクリプトを割り当てます。
まずは、私の場合、神様的なオブジェクトを作ります。シーン内の全ての親のようなオブジェクトです。
[GameObject]->[Create Empty]で空オブジェクトを追加し、名前を"Card""God"に変更します。
そして、Assets配下に例えば「Scripts」というフォルダを作成し、次のような二つのスクリプトを置きます。
God.cs
using UnityEngine; using System.Collections; public class God : MonoBehaviour { public static bool isLeft; public static bool isRight; public static bool isUp; public static bool isDown; public static bool isReverse; public void Start() { } public void Update() { //カーソル左、右、上、下、スペースが押されることで下記フラグがtrueになる isLeft = false; isRight = false; isUp = false; isDown = false; isReverse = false; if(Input.GetKey(KeyCode.LeftArrow)){ isLeft = true; } if(Input.GetKey(KeyCode.RightArrow)){ isRight = true; } if(Input.GetKey(KeyCode.UpArrow)){ isUp = true; } if(Input.GetKey(KeyCode.DownArrow)){ isDown = true; } if(Input.GetKeyUp(KeyCode.Space)){ isReverse = true; } } }
Card.cs
using UnityEngine; using System.Collections; public class Card : MonoBehaviour { private OTAnimatingSprite reverseSprite; private float moveSpeed = 100; private int moveDirX; private int moveDirY; private Vector3 movement; private bool isReversed; void Awake() { } void Start() { reverseSprite = GetComponent<OTAnimatingSprite>(); isReversed = true; } public void Update () { moveDirX = 0; moveDirY = 0; //キー押下状態によって各種制御する if(God.isLeft){ moveDirX = -1; } if(God.isRight){ moveDirX = 1; } if(God.isUp){ moveDirY = 1; } if(God.isDown){ moveDirY = -1; } if(God.isReverse){ reverse(); } UpdateMovement(); } //移動 void UpdateMovement() { movement = new Vector3(moveDirX, moveDirY,0f); movement *= Time.deltaTime*moveSpeed; transform.Translate(movement.x,movement.y, 0f); reverseSprite.transform.position = transform.position; } //裏返し void reverse() { int frame; if(isReversed){ reverseSprite.Play("club01"); }else{ reverseSprite.Play("reversed"); } isReversed = (!isReversed); } }
「Project」内のそれぞれのスクリプトを「Hierarchy」タブの対応するオブジェクト(Card.cs->Cardオブジェクト, God.cs->Godオブジェクト)へドラッグアンドドロップします。
これでゲーム開始させると、上下左右キーでカードが移動し、スペースキーでカードが裏返ります。