示例#1
0
    // Update is called once per frame
    void Update()
    {
        if (tileType == 1)
        {
            GetPassengers();
            if (passenger != null)
            {
                passenger.ResetPosition();
                passenger.ResetDestination();
            }
        }
        //Debug.DrawLine(transform.position - transform.localScale * 2, transform.position + transform.localScale * 2, Color.red);
        if ((Mathf.Abs(transform.position.x - targetposition.x) > 0.1f || Mathf.Abs(transform.position.y - targetposition.y) > 0.1f) && move)
        {
            transform.position += (new Vector3(targetposition.x, targetposition.y, 0) - transform.position) * 16 * Time.deltaTime;

            if (passenger != null)
            {
                passenger.gameObject.transform.position = transform.position - new Vector3(passengerOffset.x, passengerOffset.y, 0);
            }
        }
        else if (move)
        {
            move = false;
            foreach (BoxCollider2D box in colliders)
            {
                box.enabled = true;
            }
            transform.position = targetposition;

            if (passenger != null)
            {
                passenger.SetMove(true);
                passenger.gameObject.transform.position = transform.position - new Vector3(passengerOffset.x, passengerOffset.y, 0);
            }
        }
    }