Esempio n. 1
0
 public AimState(MissileStateController missileStateController, FireMissile fireMissile) : base(missileStateController, fireMissile)
 {
     mIsScanTrue      = false;
     mSelfRotateSpeed = 90f;
     mRelocateRange   = 2000f;
     Trails.SetActive(false);
     Debug.Log("Aim");
 }
Esempio n. 2
0
 public TransposeState(MissileStateController missileStateController, FireMissile fireMissile) : base(missileStateController, fireMissile)
 {
     mIsTransposeDone      = false;
     mIsAdjustmentDone     = false;
     mScanTime             = 0;
     mAdjustmentForce      = 250f;
     mCounterForece        = 500f;
     mMaxSpeed             = 100;
     mTransposeSpeed       = 1f;
     mMinAccelerationAngle = 2.5f;
     Trails.SetActive(true);
     Debug.Log("Transpose");
 }
Esempio n. 3
0
 /// <summary>
 /// 停止自转,冲刺,上升,预加速,
 /// </summary>
 private void Dash()
 {
     mX = Mathf.SmoothDamp(mX, -90, ref mRef, mSmootTime, 30, 1f); //弹头朝上
     GameObject.transform.rotation = Quaternion.Euler(mX, 0, 0);
     if (mRigidbody.velocity.magnitude < mDashMaxSpeed ||
         Vector3.Distance(GameObject.transform.position, mAimTankPos) <= mDashMaxDistance ||
         Vector3.Angle(GameObject.transform.forward.normalized, new Vector3(0, 1, 0)) > mMinAccelerationAngle)    // 速度,高度,角度,任意条件都满足才进行瞄准
     {
         mRigidbody.AddForce(0, Mathf.Abs(Mathf.Sin(mX)) * mDashForce, 0, ForceMode.Force);
     }
     else //到达后冲刺结束,计算得到需要朝向的方向
     {
         mIsDashComplete         = true;
         mMissileTargetDirection = (mAimTankPos - GameObject.transform.position).normalized;
         Debug.DrawLine(GameObject.transform.position, mAimTankPos, Color.blue, 100f);
     }
     ///拖尾效果
     if (!Trails.activeSelf)
     {
         Trails.SetActive(true);
     }
 }