Unity 2D 初心者 キャラクターを動かすために使用したパターン
Unity2D初心者が実装した2Dキャラクター(Player以外)の移動パターン
GWの休みを利用してUnity 2Dでゲームを制作してみました。
そこで使用したキャラクターの動作パターンとコードを紹介いたします。
今回作ったゲームに関して
子供向けのアプリで、2Dのイラストが現れて動き、タッチをしたら鳴いて振り向くというシンプルなゲームです。
今回紹介するのは、現れてからタッチされるまでの移動モーションについてです。
RPGなどで使用できるか正直わかりません。
使用できるゲームは
・同じように画面に出てくるキャラクターをタッチする
・2Dスクロールゲーム
など、でしょうか。
前提条件
実装したキャラクターのモーションは3パターンです。
・その場で ゆらゆら ゆれる(swing)
・右回り、または、左回りに、回転角ランダムで移動する(move)
・画面右から左へ移動する(walk)
カッコ内の文字は、それぞれコード内の分岐に使用している文字列(コード内の定義)です。
実際のモーションとコード
その場でゆらゆら揺れる
//パラメータ rotationSpeed で 回転させた後、rotationSpeedを全体の向きに応じで増減させる。
//なるべく自然な動きにさせるため中央に向かって加速(または減速)させるイメージ
if(moveType == "swing") {
transform.Rotate(0, 0, this.rotationSpeed * Time.deltaTime);
//現在の向きによって速度の加速、原則を決定する
if (transform.rotation.z >= 0){
rotationSpeed = rotationSpeed - rotationAcceleration * Time.deltaTime;
}
else {
rotationSpeed = rotationSpeed + rotationAcceleration * Time.deltaTime;
}
}
右回り、または、左回りに、回転角ランダムで移動する
//prefab化したキャラクターを生成するタイミングで右回りか、左回りを決定したうえで
//向きを回転させた後、キャラクターの向きに一定速度分進める。
//Vector3.up と速度の積をとることで向いている方向へ進む(キャラクターはlocal軸に対して上を向いている前提)
}else if(moveType == "move")
{
//update1回分でどれだけ回転するかランダムに決定する
if(rotationInclination == "left") {
deltaDegree = Random.Range(0.0f, 1.0f) * rotationAcceleration * Time.deltaTime;
}
else
{
deltaDegree = Random.Range(-1.0f, 0.0f) * rotationAcceleration * Time.deltaTime;
}
//ランダムに決定した分(360度表記)回転させた後、向いた方向へ進める。
transform.Rotate(0, 0, deltaDegree);
transform.Translate(Vector3.up * Time.deltaTime * rotationSpeed);
画面右から左へ移動する
//Vector3.right に積をとることで、横報告へ移動します。
//また、歩いているように見せたいので、deltaTimeの和を取得し、1秒を超えたらイメージのSpriteを差し替える、かつ、
//わかりにくいですが足音を鳴らしています(apearClipは足音です)。
}else if(moveType == "walk")
{
transform.Translate(Vector3.right * (-1) * Time.deltaTime * rotationSpeed);
walkTime += Time.deltaTime;
if(walkTime > 1.0f)
{
if(image.sprite == walkImage1)
{
image.sprite = walkImage2;
}
else
{
image.sprite = walkImage1;
}
audioSource.PlayOneShot(apearClip);
walkTime = 0.0f;
}
}
以上です。非常に簡単なコードですが、スプリプトで様々なパターンが実装できるようだったので、
感動して記事としました。
また気になることがあれば記事としたいですがUnityは他の方もたくさん書かれてますので、
果たして需要があるのかどうか・・・
ここまでです。
ご覧いただきありがとうございました。
Author And Source
この問題について(Unity 2D 初心者 キャラクターを動かすために使用したパターン), 我々は、より多くの情報をここで見つけました https://qiita.com/HamanoShintaro/items/bfe994e55ed224bde294著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .