スポンサーリンク

ゲーム製作委員会#2

ゲーム製作委員会

うすけんです。

今回はキャラクターの移動編です。今回もこちらを参照させていただきました。

https://yumineko.com/game-create/character-move

まずUnityには

AnimatorController

というものがあります。

これは簡単に言えばキャラクターごとにアニメーションを指示することができる。

視覚的に分かりやすいものなっている。

設定する内容は単純で上下左右の四方向と停止状態を作る。

x座標とy座標を作りスティック入力がこの値に近づいたら、対応するモーションに切り替えてくれという設定です。

後々、スクリプトからスティック入力を読み取って、AnimatorControllerで設定したパラメータ「x」「y」へ値を渡すことで、アニメーションが切り替わるわけですね。

そして上下左右に対応したアニメーションをを設定してあげる。

スクリプトの設

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

// このScriptはRigidbodyのアタッチが必須。無い場合は自動でアタッチする
[RequireComponent(typeof(Rigidbody))]
// このScriptはAnimatorのアタッチが必須。無い場合は自動でアタッチする
[RequireComponent(typeof(Animator))]

public class PlayerMove : MonoBehaviour {
private Rigidbody rig;
private Animator anim;
private float x, y;

[SerializeField, HeaderAttribute(“移動速度”)]
private float speed = 3.0f;

// Use this for initialization
void Start () {
// アタッチされたコンポーネントを取得
rig = GetComponent<Rigidbody>();
anim = GetComponent<Animator>();
}

// Update is called once per frame
void Update () {
// スティックの傾きを取得
x = Input.GetAxis(“Horizontal”);
y = Input.GetAxis(“Vertical”);

// AnimatorControllerのパラメータへ値を渡す
anim.SetFloat(“x”, x);
anim.SetFloat(“y”, y);
}

void FixedUpdate(){
rig.velocity = new Vector3(x, 0, y) * speed;
}
}

自分ではまだ書けないが結構シンプルなスクリプトだとは読み取れる。

次の予定はジャンプとダブルジャンプ、カメラ固定です。

ありがとうございました。

コメント

タイトルとURLをコピーしました