見出し画像

ゲーム作成 アドベントカレンダー 4日目「SerializeField」

地球表面を歩かせるの成功した

That's one small step for a man, one giant leap for mankind.

これは偉大な一歩だわ。

とりあえず、作成物でございますわ。

  • キーボードの左右で向きを変え地球の曲面にそって歩く

  • キャラクターに画面追従する

え?これだけ!?
いやいや、結構イケてる技術を詰め込みましたよ。

Spinner クラス

惑星の周りを回るクラスを作り、
角度から場所と自身の回転角度を変える優れものです。

public class Spinner : MonoBehaviour
{
    [SerializeField] public float altitude;
    [SerializeField] public float angle;

    public void UpdateAngle(float newAngle) {
        angle = newAngle % 360.0f;
        transform.localEulerAngles = new Vector3(0.0f, 0.0f, angle - 90.0f);

        float rad = angle * Mathf.PI/180.0f;

        float x = Mathf.Cos(rad) * altitude;
        float y = Mathf.Sin(rad) * altitude;
        transform.localPosition = new Vector3(x, y, 0);
    }
}

三角関数なんて社会に出たら使わないけど、トリを惑星の周りに歩かせるときに使うので、高校生の皆さんはちゃんと勉強してくださいね。

あと、[SerializeField] っていう Unity の基本的なやつを忘れていたんですけど、これ忘れてたら何もできないじゃないですか。SerializeField を設定した変数は、Unity のビジュアルエディタ上で値やオブジェクトを受け取れます。

クラス名 Orbital クラスとかにすればもっとかっこよかったか。


いつでもサポートお待ちしております。凍える荒野を行く旅人の足を前へ進めるのは、いつだって心地の良い熱を持った風だから・・・