Esempio n. 1
0
 public static void Turn(this TurnComponent self, Quaternion quaternion, float turnTime = 0.1f)
 {
     self.To       = quaternion;
     self.From     = self.GetParent <Unit>().Rotation;
     self.t        = 0;
     self.TurnTime = turnTime;
 }
Esempio n. 2
0
        /// <summary>
        /// 改变Unit的朝向
        /// </summary>
        /// <param name="angle">与X轴正方向的夹角</param>
        public static void Turn(this TurnComponent self, float angle, float turnTime = 0.1f)
        {
            Quaternion quaternion = PositionHelper.GetAngleToQuaternion(angle);

            self.To       = quaternion;
            self.From     = self.GetParent <Unit>().Rotation;
            self.t        = 0;
            self.TurnTime = turnTime;
        }
Esempio n. 3
0
        /// <summary>
        /// 改变Unit的朝向
        /// </summary>
        public static void Turn(this TurnComponent self, Vector3 target, float turnTime = 0.1f)
        {
            Quaternion quaternion = PositionHelper.GetVector3ToQuaternion(self.GetParent <Unit>().Position, target);

            self.To       = quaternion;
            self.From     = self.GetParent <Unit>().Rotation;
            self.t        = 0;
            self.TurnTime = turnTime;
        }
Esempio n. 4
0
		public static void TurnImmediately(this TurnComponent self, Vector3 target)
		{
			Vector3 nowPos = self.GetParent<Unit>().Position;
			if (nowPos == target)
			{
				return;
			}

			Quaternion quaternion = PositionHelper.GetVector3ToQuaternion(self.GetParent<Unit>().Position, target);
			self.GetParent<Unit>().Rotation = quaternion;
		}
Esempio n. 5
0
		private static void UpdateTurn(this TurnComponent self)
		{
			//Log.Debug($"update turn: {this.t} {this.TurnTime}");
			if (self.t > self.TurnTime)
			{
				return;
			}

			self.t += Time.deltaTime;

			Quaternion v = Quaternion.Slerp(self.From, self.To, self.t / self.TurnTime);
			self.GetParent<Unit>().Rotation = v;
		}
Esempio n. 6
0
        public static void TurnImmediately(this TurnComponent self, float angle)
        {
            Quaternion quaternion = PositionHelper.GetAngleToQuaternion(angle);

            self.GetParent <Unit>().Rotation = quaternion;
        }
Esempio n. 7
0
 public static void TurnImmediately(this TurnComponent self, Quaternion quaternion)
 {
     self.GetParent <Unit>().Rotation = quaternion;
 }
Esempio n. 8
0
        /// <summary>
        /// 改变Unit的朝向
        /// </summary>
        public static void Turn2D(this TurnComponent self, Vector3 dir, float turnTime = 0.1f)
        {
            Vector3 nexpos = self.GetParent <Unit>().Position + dir;

            self.Turn(nexpos, turnTime);
        }
Esempio n. 9
0
 public static void Update(this TurnComponent self)
 {
     self.UpdateTurn();
 }