示例#1
0
    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;
    }
示例#2
0
    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);
    }