Posted at

対象をカメラに移すまで待機させる

More than 1 year has passed since last update.


概要

現在見えている画面外に配置した敵等のオブジェクトが、カメラに映るまで待機させておく方法。


ソース

    private bool is_Rendered;

void OnWillRenderObject()
{
if (Camera.current.name == "Main Camera")
{
is_Rendered = true;
}
}

OnWillRenderObject()はオブジェクトが表示されている場合カメラごとに 1 度呼び出されます。

なので、呼び出されたらis_Renderをtrueにして、あとはUpdate()内の行動をif分などで制御したりすればよい。

    void Update () {

TimeElapsed += Time.deltaTime;

if (is_Active == true && is_Rendered == true)
{
//プレイヤーの方向に向かって移動していく
Vector3 diff = (player.transform.position - transform.position); //プレイヤーと対照との差分を取得
Enemy_rigidbody.velocity = new Vector3(diff.x * speed_x, diff.y * speed_y);//取得した座標に対して変数をかけてやると進む
}

こんな感じ。