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(); }
/** 打飞 */ 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>(); }
protected override void OnAwake() { base.OnAwake(); m_pathAgent = GetComponent <PathAgentComponent>(); m_steeringAgent = GetComponent <SteeringAgentComponent>(); rigibody = GetComponent <Rigidbody>(); }
protected override void OnStart() { base.OnStart(); unitPath = GetComponent <UnitPath>(); steeringAgentComponent = GetComponent <SteeringAgentComponent>(); rigibody = GetComponent <Rigidbody>(); _moveSpeed = unitData.moveSpeed; }
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>(); }
// Use this for initialization void Start() { steerScript = gameObject.GetComponent <SteeringAgentComponent>(); }
void Awake() { _steerScript = this.GetComponent <SteeringAgentComponent>(); _navScript = this.GetComponent <NavigationAgentComponent>(); MoveTarget = GameObject.FindGameObjectWithTag("InitialMoveTarget"); }