Esempio n. 1
0
 private void Runnable()
 {
     if (!_isRunnig)
     {
         try
         {
             _isRunnig = true;
             Vector2 position = _trajectory.GenerateCoord();
             MainThreadRunner.AddTask(() =>
             {
                 HOTween.Kill(_aircraftView.transform);
                 var velocity = new Vector3(position.x, position.y, 0) - _aircraftView.transform.localPosition;
                 float angle  = Mathf.Atan2(velocity.y, velocity.x) * Mathf.Rad2Deg;
                 Quaternion q = Quaternion.AngleAxis(angle, Vector3.forward);
                 _aircraftView.transform.rotation = q;
                 //Debug.LogWarning("rotation" + _aircraftView.transform.rotation.x + " " + _aircraftView.transform.rotation.y + " " + _aircraftView.transform.rotation.z);
                 HOTween.To(_aircraftView.transform, Constants.PulseRepetitionInterval / 1000.0f,
                            new TweenParms().Prop("localPosition", new Vector3(position.x, position.y, 0)).Ease(EaseType.Linear));
             });
             if (ChangePosition != null)
             {
                 ChangePosition(position);
             }
             _isRunnig = false;
         }
         catch (Exception e)
         {
             Debug.LogWarning(" AircraftController Runnable" + e.ToString());
         }
     }
 }