Unity Moving Platform脚本停止工作?

时间:2019-12-03 02:35:54

标签: c# unity3d 2d

我有一个脚本,应该在两个位置之间移动平台。 平台移至pos1,但随后停止。...

这是我的代码:     使用System.Collections;     使用System.Collections.Generic;     使用UnityEngine;

public class Platform : MonoBehaviour
{
    public Transform pos1, pos2;

    public float speed;

    public Transform startPos;

    Vector3 nextPos;


    // Start is called before the first frame update
    void Start()
    {
        nextPos = pos1.position;
    }

    // Update is called once per frame
    void Update()
    {

        if (transform.position == pos1.position)
        {
            nextPos = pos2.position;
        }
        if (transform.position == pos2.position)
        {
            nextPos = pos1.position;
        }

        transform.position = Vector3.MoveTowards(transform.position, nextPos, speed * Time.deltaTime);

    }

    private void OnDrawGizmos()
    {
        Gizmos.DrawLine(pos1.position, pos2.position);
    }
}

1 个答案:

答案 0 :(得分:2)

您要依次设置它,因此它始终是第二个选项。

在一种情况下,如果nextpos位于position 1中,则会将其设置为位置2,但随后会立即更改为 如果nextpos位于position 2中,则将其设置回1。

轻松更改应该只是将第二个if语句更改为else if

解释代码,但希望它有意义