使用屏幕坐标(而非世界坐标)来确定物体再屏幕内的边界使其运动过程中不超出
public class BehaviourScript1 : MonoBehaviour
{
private bool toRight = true;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
Vector3 Screenposition = Camera.main.WorldToScreenPoint(gameObject.transform .position);
if (toRight && Screenposition.x >Screen.width)
{
toRight = false;
transform.localEulerAngles = new Vector3(0, 0, 90);
}
else if (!toRight && Screenposition.x < 0)
{
toRight = true;
transform.localEulerAngles = new Vector3(0, 0, -90);
}
transform.Translate(0, speed * Time.deltaTime, 0,Space.Self);
}
}