示例#1
0
 // Update is called once per frame
 void Update()
 {
     if (getOut)
     {
         Vector2 toGoal         = dest - transform.position;
         float   distanceToGoal = toGoal.magnitude;
         if (distanceToGoal < 0.1)
         {
             Destroy(gameObject);
             getOut = false;
             GameLogic gl = (GameLogic)GAMELOGIC.GetComponent("GameLogic");
             Objective o  = gl.getCurrentObjective();
             if (o is Taxi)
             {
                 Taxi t = (Taxi)o;
                 t.OnGetOut();
             }
         }
         else
         {
             transform.Translate((dest - transform.position) / (30 * distanceToGoal));
         }
     }
     else
     {
         Vector2 toPlayer         = player.transform.position - transform.position;
         float   distanceToPlayer = toPlayer.magnitude;
         if (distanceToPlayer < 0.1)
         {
             Destroy(gameObject);
             GameLogic gl = (GameLogic)GAMELOGIC.GetComponent("GameLogic");
             Objective o  = gl.getCurrentObjective();
             if (o is Taxi)
             {
                 Taxi t = (Taxi)o;
                 t.OnGetIn();
             }
         }
         else if (player.rigidbody2D.velocity.magnitude < 1 && distanceToPlayer < 1)
         {
             transform.Translate((player.transform.position - transform.position) / (30 * distanceToPlayer));
         }
     }
 }