void Start()
    {
        controller = GetComponent <CharacterController>();
        GameObject coreManagers = GameObject.FindGameObjectWithTag("CoreManagers");

        timeManager    = coreManagers.GetComponent <TimeManager>();
        steering       = GetComponent <SteeringAgentComponent>();
        navigation     = GetComponent <NavigationAgentComponent>();
        fsm            = GetComponent <FiniteStateMachine>();
        targetPosition = transform.position;

        GameplayManager gameplay = GameObject.FindGameObjectWithTag("GameManagers").GetComponent <GameplayManager>();

        player = gameplay.Character;

        enable = true;

        towardsPlayer = true;
        if (Random.Range(0, 100000) % 100 > 70)
        {
            towardsPlayer = false;
        }

        InitTarget();
        //InitTargetOnToken();
    }
Exemplo n.º 2
0
        /** 打飞 */
        public void HitFly()
        {
            if (unitData.unitType == UnitType.Solider)
            {
                SteeringAgentComponent m_steeringAgent = GetComponent <SteeringAgentComponent>();
                m_steeringAgent.StopSteering();

                if (transform.position != unitData.hitFlyPoint)
                {
                    Vector3 dir = (unitData.hitFlyPoint - transform.position).normalized;
                    unitAgent.angel = HMath.AngleBetweenForward2Vector(dir);
                }
                else
                {
                    unitData.hitFlyPoint += (unitData.to.unit.transform.position - transform.position).normalized * 3f;
                }

                Rigidbody rigidbody = GetComponent <Rigidbody>();
                rigidbody.useGravity = true;
                rigidbody.AddExplosionForce(unitData.hitFlyPower, unitData.hitFlyPoint, unitData.hitFlyPowerRadius, unitData.hitFlyPowerUp);

                unitAgent.action = "die";


//				BSolider_Alpha_Hide soliderAlphaHide = GetComponent<BSolider_Alpha_Hide>();
//				soliderAlphaHide.enabled = true;

//				Collider collider = GetComponent<Collider>();
//				collider.enabled = true;
            }
        }
 void Awake()
 {
     // Find a reference to the path and steering agent
     m_pathAgent     = GetComponent <PathAgentComponent>();
     m_steeringAgent = GetComponent <SteeringAgentComponent>();
     m_pathGroup     = GetComponent <UnitPathGroup>();
 }
Exemplo n.º 4
0
        protected override void OnAwake()
        {
            base.OnAwake();

            m_pathAgent     = GetComponent <PathAgentComponent>();
            m_steeringAgent = GetComponent <SteeringAgentComponent>();
            rigibody        = GetComponent <Rigidbody>();
        }
Exemplo n.º 5
0
        protected override void OnStart()
        {
            base.OnStart();

            unitPath = GetComponent <UnitPath>();
            steeringAgentComponent = GetComponent <SteeringAgentComponent>();
            rigibody   = GetComponent <Rigidbody>();
            _moveSpeed = unitData.moveSpeed;
        }
Exemplo n.º 6
0
        public void SetPath(Path path)
        {
            if (unitData == null)
            {
//				OnRelease();
//				SoliderPoolItem soliderPoolItem = GetComponent<SoliderPoolItem>();
//
//				Debug.LogErrorFormat("<color=red>SetPath unitData=null  gameObject={0},  gameObject.activeSelf={1}  isRelease={2}, isPut={3}, needRest={4}</color>", gameObject, gameObject.activeSelf, soliderPoolItem.isRelease, soliderPoolItem.isPut, soliderPoolItem.needRest);
                return;
            }


            if (m_steeringAgent == null)
            {
                m_pathAgent     = GetComponent <PathAgentComponent>();
                m_steeringAgent = GetComponent <SteeringAgentComponent>();
                rigibody        = GetComponent <Rigidbody>();
            }

            from = unitData.from.unit;
            to   = unitData.to.unit;

            state         = UnitPathState.Moveing;
            this.path     = path;
            path.unitPath = this;

//			float timeTotal0 = path.s0 / maxSpeed;
//			float speed = path.s / timeTotal0;

            _moveSpeed = unitData.moveSpeed;

//			m_steeringAgent.m_maxSpeed = speed;
//			m_steeringAgent.m_slowingDistance = speed / 2F;
//			m_steeringAgent.m_arrivalDistance = 0.5F * speed / 2F > 2f ? 2F : 0.5F * speed / 2F;
//			if(m_steeringAgent.m_arrivalDistance < 0.5) m_steeringAgent.m_arrivalDistance = 0.5F;

            //TODO
            OnSpeedChange();


//			m_steeringAgent.SteerAlongPath( path.points.ToArray(), m_pathAgent.PathManager.PathTerrain );
            m_steeringAgent.SteerAlongPath(path.points.ToArray(), null);
        }
	void Awake()
	{
		// Find a reference to the path and steering agent
		m_pathAgent = GetComponent<PathAgentComponent>();
		m_steeringAgent = GetComponent<SteeringAgentComponent>();
	}
Exemplo n.º 8
0
 // Use this for initialization
 void Start()
 {
     steerScript = gameObject.GetComponent <SteeringAgentComponent>();
 }
Exemplo n.º 9
0
 void Awake()
 {
     _steerScript = this.GetComponent <SteeringAgentComponent>();
     _navScript   = this.GetComponent <NavigationAgentComponent>();
     MoveTarget   = GameObject.FindGameObjectWithTag("InitialMoveTarget");
 }