コード例 #1
0
    IEnumerator Attack()
    {
        float speed    = body.velocity.magnitude;
        float maxSpeed = Game.TowerInfo.DefaultMovementSpeed;
        var   gravity  = (destination.transform.position - transform.position).normalized;

        while (true)
        {
            speed += Time.fixedDeltaTime * 5.0f;
            if (speed > maxSpeed)
            {
                speed = maxSpeed;
            }

            gravity       = (destination.transform.position - transform.position).normalized;
            body.velocity = (body.velocity + gravity).normalized * speed;
            if (Vector3.Distance(destination.transform.position, transform.position) <= .5f)
            {
                break;
            }
            yield return(new WaitForFixedUpdate());
        }
        gameObject.SetActive(false);
        destination.UnitEntered(this);
    }
コード例 #2
0
 public void Drive()
 {
     if (AtDestination)
     {
         destination.UnitEntered(unit);
     }
 }