SphereCollider InitializeEntityTrigger(GameObject parentObject, float triggerRadius) { GameObject entityTriggerContainer = new GameObject(entityTriggerName) { layer = LayerMask.NameToLayer("EntityTrigger") }; MovementBehaviorTriggerController triggerController = entityTriggerContainer.AddComponent <MovementBehaviorTriggerController>(); triggerController.RegisterControllingBehavior(this); entityTriggerContainer.transform.SetParent(parentObject.transform); entityTriggerContainer.transform.localPosition = Vector3.zero; SphereCollider instantiatedTrigger = entityTriggerContainer.AddComponent <SphereCollider>(); instantiatedTrigger.isTrigger = true; instantiatedTrigger.radius = triggerRadius; return(instantiatedTrigger); }
BoxCollider InitializeObstacleAvoidanceTrigger(GameObject parentObject) { GameObject avoidanceTriggerContainer = new GameObject(obstacleAvoidanceTriggerName) { layer = LayerMask.NameToLayer("ObstacleAvoidanceTrigger") }; MovementBehaviorTriggerController triggerController = avoidanceTriggerContainer.AddComponent <MovementBehaviorTriggerController>(); triggerController.RegisterControllingBehavior(this); avoidanceTriggerContainer.transform.SetParent(parentObject.transform); avoidanceTriggerContainer.transform.localPosition = Vector3.zero; avoidanceTriggerContainer.transform.localRotation = Quaternion.Euler(Vector3.zero); BoxCollider instantiatedTrigger = avoidanceTriggerContainer.AddComponent <BoxCollider>(); instantiatedTrigger.isTrigger = true; instantiatedTrigger.size = new Vector3(parentObject.transform.localScale.x * 1.7f, parentObject.transform.localScale.y * 0.8f, parentObject.transform.localScale.z); return(instantiatedTrigger); }