void FixedUpdate () { switch (moveState) { case EMOVESTATE.None: break; case EMOVESTATE.MoveState: { if (mTarget == null) { ResetSlowDown(); mTarget = ZhangYuControl.Me.gameObject; } // transform.position += transform.forward * movementSpeed * Time.deltaTime; Vector3 dir = mTarget.transform.position - transform.position; transform.position += dir.normalized * movementSpeed * Time.deltaTime; //mRigidbody.velocity = dir.normalized; mRigidbody.AddForce (-transform.up * Time.deltaTime * mGravitySpeed); } break; case EMOVESTATE.FlyState: { Vector3 dir = transform.position - PlanetControl.Me.gameObject.transform.position; mRigidbody.AddForce (dir.normalized * Time.deltaTime * mFlySpeed); mFlySpeed -= 50; if (mFlySpeed <= 0) { moveState = EMOVESTATE.None; } } break; case EMOVESTATE.StayState: { if (mStayTarget == null) { SetWake (); moveState = EMOVESTATE.MoveState; } } break; } }
public void FlyAway () { moveState = EMOVESTATE.FlyState; // ClipSound.Me.Play ("xiaoren_hit"); }
//for black hole void OnCollisionEnter (Collision collision) { if (!mStayTarget) return; Collider col = collision.collider; if (null != col && null != col.gameObject) { if (LayerMask.LayerToName (col.gameObject.layer) == "WuQi") { SetSleep (); moveState = EMOVESTATE.StayState; } } }
private void Init () { Vector3 dir = transform.position - PlanetControl.Me.gameObject.transform.position; transform.up = dir.normalized; // Messenger.AddListener<RaycastHit> (GameEventType.CameraRayCastHit, Die); Messenger.AddListener (GameEventType.SkillSlowDown, SlowDown); Messenger.AddListener (GameEventType.GameStartEvent, DestroyEnemy); moveState = EMOVESTATE.MoveState; mFlySpeed = Random.Range (flySpeedMin, flySpeedMax); mOrginalMovementSpeed = movementSpeed; mRigidbody = GetComponent<Rigidbody> (); mCollider = GetComponent<Collider> (); }