コライダーの範囲内か範囲外なのかを取得して動画を再生させる


Unityでコライダーの範囲から出てしまった時に動画を再生させてサンプルを作ってみました。
こんな感じでカメラがcubeのボックスコライダーを出てしまった時に動画を再生させてみます。

using UnityEngine;
using System.Collections;

public class TestTriggerMovie : MonoBehaviour {
    //settings
    public GameObject _trigger;
    public GameObject _target;
    //objects
    private Bounds TriggerBounds;

    void Start ()
    {
        TriggerBounds = _trigger.transform.collider.bounds;
        _target = this.transform.FindChild("Plane").gameObject;     
    }

    void Update () {
        this.transform.position += new Vector3(0, 0, 1); 
        Vector3 pos = this.transform.localPosition;
        //Debug.Log(pos);    
        if (TriggerBounds.Contains(pos) == false)
        {
            Debug.Log("Fire");
            MovieTexture movieTexture = _target.renderer.material.mainTexture as MovieTexture;
            //movieTexture.loop = true;
            movieTexture.Play();
        } 
    }

}

このような感じでカメラを出たら動画が再生されるようにしました。
ちなみに、カメラの子にしているPlaneのマテリアル設定は、particles/Additiveにしています。

とまあ、毎度の事ながらすごく簡単ですね。