我有一个脚本,应该在两个位置之间移动平台。 平台移至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);
}
}
答案 0 :(得分:2)
您要依次设置它,因此它始终是第二个选项。
在一种情况下,如果nextpos
位于position 1
中,则会将其设置为位置2,但随后会立即更改为
如果nextpos
位于position 2
中,则将其设置回1。
轻松更改应该只是将第二个if
语句更改为else if
解释代码,但希望它有意义