using ET; using UnityEngine; namespace ET { //public class TurnComponentUpdateSystem : UpdateSystem //{ // public override void Update(TurnComponent self) // { // self.Update(); // } //} public class TurnComponent : Entity { // turn public Quaternion To; public Quaternion From; public float t = float.MaxValue; public float TurnTime = 0.1f; //public void Update() //{ // UpdateTurn(); //} //private void UpdateTurn() //{ // //Log.Debug($"update turn: {this.t} {this.TurnTime}"); // if (this.t > this.TurnTime) // { // return; // } // this.t += Time.deltaTime; // Quaternion v = Quaternion.Slerp(this.From, this.To, this.t / this.TurnTime); // this.GetParent().Rotation = v; //} ///// ///// 改变Unit的朝向 ///// //public void Turn2D(Vector3 dir, float turnTime = 0.1f) //{ // Vector3 nexpos = this.GetParent().ViewGO.transform.position + dir; // Turn(nexpos, turnTime); //} public void TurnSprite(Vector3 pos,Vector2 target, float turnTime = 0.1f) { this.GetParent().YAngle = pos.x>target.x?180:0; } ///// ///// 改变Unit的朝向 ///// //public void Turn(Vector3 target, float turnTime = 0.1f) //{ // Quaternion quaternion = PositionHelper.GetVector3ToQuaternion(this.GetParent().Position, target); // this.To = quaternion; // this.From = this.GetParent().Rotation; // this.t = 0; // this.TurnTime = turnTime; //} /// /// 改变Unit的朝向 /// /// 与X轴正方向的夹角 //public void Turn(float angle, float turnTime = 0.1f) //{ // Quaternion quaternion = PositionHelper.GetAngleToQuaternion(angle); // this.To = quaternion; // this.From = this.GetParent().Rotation; // this.t = 0; // this.TurnTime = turnTime; //} //public void Turn(Quaternion quaternion, float turnTime = 0.1f) //{ // this.To = quaternion; // this.From = this.GetParent().Rotation; // this.t = 0; // this.TurnTime = turnTime; //} //public void TurnImmediately(Quaternion quaternion) //{ // this.GetParent().Rotation = quaternion; //} //public void TurnImmediately(Vector3 target) //{ // Vector3 nowPos = this.GetParent().Position; // if (nowPos == target) // { // return; // } // Quaternion quaternion = PositionHelper.GetVector3ToQuaternion(this.GetParent().Position, target); // this.GetParent().Rotation = quaternion; //} //public void TurnImmediately(float angle) //{ // Quaternion quaternion = PositionHelper.GetAngleToQuaternion(angle); // this.GetParent().Rotation = quaternion; //} public override void Dispose() { if (this.IsDisposed) { return; } base.Dispose(); } } }