Unity2D:敵の動きを考える

Unity

参考スクリプトです。
これを元にpublic変数を増やしたり、Updateメソッド内にif文などを追加したりすると色々と敵の動きを変化させることが出来ると思います。

Enemy0Controller

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

public class Enemy0Controller : MonoBehaviour
{
    public float sx;            // x方向の速度
    public float sy;            // y方向の速度
    public float rs;         // 回転スピード

    // Start is called before the first frame update
    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {
        // 下に向かって移動する
        transform.position += new Vector3(sx, -sy, 0) * Time.deltaTime;

        // 回転する
        transform.Rotate(new Vector3(0, 0, rs) * Time.deltaTime);

        // 画面外に出たら消去
        if (!GetComponent<Renderer>().isVisible)
        {
            Destroy(this.gameObject);
        }
    }
}

アタッチするスプライトオブジェクトにはCircle Collider 2DなどのColliderコンポーネントを追加すると当たり判定できます。

アタッチ後は、Inspectorウインドウのsx, sy, rsに数値を入れて動きを確認してください。

例)sx=0, sy=4, rs=0とすると敵が下に向かって移動する

コメント