Exemple #1
0
        // Use this for initialization
        void Awake()
        {
            //initialize various values.
            //Mainly taking inputs from the user and putting them into the formats we use later,
            //eg: squared values for faster distance comparison.
            myTransform = transform;

            timeUntilNextDodge         = timeBetweenLoSDodges * Random.value;
            dodgeClearHeightCheckPos   = Vector3.zero;
            dodgeClearHeightCheckPos.y = dodgingClearHeight;

            distFromTargetToSprint = distFromTargetToSprint * distFromTargetToSprint;
            meleeRange             = meleeRange * meleeRange;

            if (navmeshInterfaceClass == null)
            {
                navI = (TacticalAI.NavmeshInterface)gameObject.AddComponent(typeof(TacticalAI.NavmeshInterface));
                navI.Initialize(gameObject);
            }
            else
            {
                navI = navmeshInterfaceClass;
                navI.Initialize(gameObject);
            }
            //else
            //{
            //	navI = (navmeshInterfaceClass)gameObject.AddComponent(typeof(navmeshInterfaceClass));
            //	navI.Initialize(gameObject);
            //}

            /*if(gameObject.GetComponent<NavMeshAgent>() != null){
             *  agent = gameObject.GetComponent<NavMeshAgent>();
             *  origAcceleration = navI.GetAcceleration;
             *  navI.SetSpeed(idleSpeed);
             *  origAgentStoppingDist = navI.GetStoppingDistance();
             * }
             * else{
             *  Debug.LogWarning("No navmesh agent on the same object as the BaseScript!  Please add one!");
             *  this.enabled = false;
             *  return;
             * }*/



            if (idleSpeed > runSpeed)
            {
                idleSpeed = runSpeed;
            }
            if (headLookScript)
            {
                headLookScript.Deactivate();
            }
        }