Unity

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

More than 3 years have passed since last update.

Unityでコライダーの範囲から出てしまった時に動画を再生させてサンプルを作ってみました。

こんな感じでカメラがcubeのボックスコライダーを出てしまった時に動画を再生させてみます。

スクリーンショット 2014-10-09 12.58.18.png

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にしています。

スクリーンショット 2014-10-09 13.01.15.png

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