public virtual void Init() { _animator = GetComponent <Animator>(); animatorController = baseController; anchors["rig"] = FindChildByDepth(transform, "Rig"); _physicsBody = GetComponent <PhysicsBody>(); _environmentColliders = transform.Find("EnvironmentColliders"); _bodyCollider = environmentColliders.Find("BodyCollider").GetComponent <BoxCollider>(); _groundCheck = FindTriggerCheck(environmentColliders, "GroundCheck", SetGroundFound); _leftWallCheck = FindTriggerCheck(environmentColliders, "LeftWallCheck", SetLeftWallFound); _rightWallCheck = FindTriggerCheck(environmentColliders, "RightWallCheck", SetRightWallFound); _ceilingCheck = FindTriggerCheck(environmentColliders, "CeilingCheck", SetCeilingFound); _backgroundCheck = FindTriggerCheck(environmentColliders, "BackgroundCheck", BackgroundFound); graphicsChild = transform.Find("Graphics"); cosmetics = graphicsChild.Find("Cosmetics"); directionIndicator = GetComponentInChildren <DirectionIndicator>(); directionIndicator.gameObject.SetActive(false); state = AgentManager.Instance.settings.initialAgentState; OnEnvironmentChange(null, EnvironmentManager.Instance.GetEnvironment()); EnvironmentManager.Instance.environmentChanged += OnEnvironmentChange; AgentManager.Instance.RegisterAgent(this); didInit = true; }
protected virtual TriggerCheck FindTriggerCheck(Transform parent, string name, UnityAction <bool, Collider> action) { Transform colliderTransform = parent.Find(name); TriggerCheck check = null; if (colliderTransform != null) { check = colliderTransform.GetComponent <TriggerCheck>(); } if (check == null) { Debug.LogError("Agent does not have TriggerCheck named " + name); } else { check.onTrigger.AddListener(action); } return(check); }