using UnityEngine; using UnityEngine.SceneManagement; namespace UnityEngine.ProBuilder { /// /// A MonoBehaviour that automatically enables and disables the parent GameObject on exiting and enterin playmode, respectively. /// [DisallowMultipleComponent] sealed class TriggerBehaviour : EntityBehaviour { public override void Initialize() { var collision = gameObject.GetComponent(); if (!collision) collision = gameObject.AddComponent(); var meshCollider = collision as MeshCollider; if (meshCollider) meshCollider.convex = true; collision.isTrigger = true; SetMaterial(BuiltinMaterials.triggerMaterial); var r = GetComponent(); if (r != null) r.hideFlags = HideFlags.DontSaveInBuild; } public override void OnEnterPlayMode() { var r = GetComponent(); if (r != null) r.enabled = false; } public override void OnSceneLoaded(Scene scene, LoadSceneMode mode) { var r = GetComponent(); if (r != null) r.enabled = false; } } }