ゲーム作成 アドベントカレンダー 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 クラスとかにすればもっとかっこよかったか。
いつでもサポートお待ちしております。凍える荒野を行く旅人の足を前へ進めるのは、いつだって心地の良い熱を持った風だから・・・