デジタルフロッグ

Unityのアプリの開発をしながらいろいろと忘れないための備忘録でございます。

iTweenを使った動き

よくあるカードゲームやトランプなど、配られるような動きを作ってみたいと思います。

あくまで今回作るものはiTweenを使ってみてこういう動きも出来ますよというものであって完成形ではありません。

それでは最初にどういう動きをしているかを見てみましょう。

f:id:karaagedigital:20160830163409g:plain

カードを配るというボタンを押すことによってカードが右中央にある山札から回転しながら手札に揃います。

この動きはiTweenを使って再現してみました。以下がスクリプトです。

 

using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class CardButton : MonoBehaviour {
[SerializeField] GameObject Cube;
[SerializeField] Text card;
public static int c = 0;
// Use this for initialization
public void ButtonClick(){
  c += 1;
  card.text = "×" + c.ToString();
  Instantiate (Cube);
  }
}

 

最初にボタンの方のスクリプトですが、右下にあるカードの枚数のテキストをこちらで制御し、何枚手札にあるかもこちらのボタンで管理しています。カードはプレハブ化しておき、ボタンがクリックされるたびに生成されます。

次にカードの方のスクリプトです。

using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class Tweentest : MonoBehaviour {
int c;
void Start(){
c = 0;
c = CardButton.c;
iTween.MoveTo(gameObject,iTween.Hash(
  "x",4.5f - c * 1.5f,
  "y",-4,
  "time",0.2f,
  "easeType",iTween.EaseType.linear
));
iTween.RotateTo(gameObject,iTween.Hash(
  "z",90,
  "y",180,
  "time",0.1f,
  "easeType",iTween.EaseType.linear
));
}

}

カードの方はCardButtonの方から変数cを取得し、現在何枚目なのかを理解させて枚数に応じて着地点を少しずつずらしていきます。

こうする事でクリックするたびに等間隔開けた状態でカードが配られることになります。

他にもたくさん簡単なやり方はあるかもしれませんが、ゲームしながらこの動きでいいか。とパパッと思いついた動きを載せてみました。