Пример #1
0
    override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        if (sheepAgent == null)
        {
            sheepAgent = animator.GetComponentInChildren <NavMeshAgent>();

            if (sheepAgent == null)
            {
                Debug.LogError("[IdleBehaviour] OnStateEnter: no nav mesh agent found");
            }
        }

        if (sheepTransform == null)
        {
            sheepTransform = animator.gameObject.transform;

            if (sheepTransform == null)
            {
                Debug.LogError("[IdleBehaviour] OnStateEnter: no sheep transform found");
            }
        }

        if (sensors == null)
        {
            sensors = animator.GetComponentInChildren <SensorsLinker>();

            if (sensors == null)
            {
                Debug.LogError("[IdleBehaviour] OnStateEnter: no sensors linker found");
            }
        }

        if (visionRadius == null)
        {
            visionRadius = sensors.visionCollider;
        }

        if (mediumRadius == null)
        {
            mediumRadius = sensors.mediumCollider;
        }

        if (closeRadius == null)
        {
            closeRadius = sensors.closeCollider;
        }

        currentStep = Random.Range(0, frequency);

        if (sheepAgent.isActiveAndEnabled)
        {
            sheepAgent.ResetPath();
        }
        //sheepAgent.isStopped = true;

        //Debug.Log(sheepTransform.name + " entered IDLE");
    }
Пример #2
0
    override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        if (sheepAgent == null)
        {
            sheepAgent = animator.GetComponentInChildren <NavMeshAgent>();

            if (sheepAgent == null)
            {
                Debug.LogError("[FollowBehaviour] OnStateEnter: no nav mesh agent found");
            }
        }

        if (sensors == null)
        {
            sensors = animator.GetComponentInChildren <SensorsLinker>();

            if (sensors == null)
            {
                Debug.LogError("[FollowBehaviour] OnStateEnter: no sensors linker found");
            }
        }

        if (sheepTransform == null)
        {
            sheepTransform = animator.gameObject.transform;

            if (sheepTransform == null)
            {
                Debug.LogError("[FollowBehaviour] OnStateEnter: no sheep transform found");
            }
        }

        if (visionRadius == null)
        {
            visionRadius = sensors.visionCollider;
        }
        if (mediumRadius == null)
        {
            mediumRadius = sensors.mediumCollider;
        }
        if (closeRadius == null)
        {
            closeRadius = sensors.closeCollider;
        }

        //Debug.Log(sheepTransform.name + " entered FOLLOW");
        currentTimer = decisionTimer;
    }
Пример #3
0
    override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        if (sheepAgent == null)
        {
            sheepAgent = animator.GetComponentInChildren <NavMeshAgent>();

            if (sheepAgent == null)
            {
                Debug.LogError("[FleeBehaviour] OnStateEnter: no nav mesh agent found");
            }
        }

        if (sensors == null)
        {
            sensors = animator.GetComponentInChildren <SensorsLinker>();

            if (sensors == null)
            {
                Debug.LogError("[FleeBehaviour] OnStateEnter: no sensors linker found");
            }
        }

        if (sheepTransform == null)
        {
            sheepTransform = animator.gameObject.transform;

            if (sheepTransform == null)
            {
                Debug.LogError("[FleeBehaviour] OnStateEnter: no sheep transform found");
            }
        }

        if (visionRadius == null)
        {
            visionRadius = sensors.visionCollider;
        }
        if (mediumRadius == null)
        {
            mediumRadius = sensors.mediumCollider;
        }
        if (closeRadius == null)
        {
            closeRadius = sensors.closeCollider;
        }

        previousSpeed    = sheepAgent.speed;
        sheepAgent.speed = agentSpeedModifier * previousSpeed;
    }