unity游戏设计 小球的移动

已知地毯的尺寸是10*10,请问如何让小球沿x轴移动至地毯边缘然后停止?需要使用if语句吗?

img

引用 皆我百晓生 小程序回复内容作答:

是的,你可以使用if语句来判断小球是否到达了地毯边缘。以下是一个简单的示例代码:

using UnityEngine;

public class BallMovement : MonoBehaviour
{
    public float speed = 5f;

    private float carpetSize = 10f;

    private void Update()
    {
        // 计算小球新的位置
        Vector3 newPosition = transform.position + new Vector3(speed * Time.deltaTime, 0, 0);

        // 判断小球是否到达地毯边缘
        if (newPosition.x >= carpetSize / 2)
        {
            // 将小球位置限制在地毯边缘
            newPosition.x = carpetSize / 2;
            // 停止小球的移动
            speed = 0;
        }

        // 更新小球位置
        transform.position = newPosition;
    }
}

在这个示例代码中,我们将小球的速度设为5,每帧根据速度移动小球的位置。在更新小球位置之后,使用if语句检查小球的新位置是否超出了地毯边缘(即x轴坐标是否大于等于地毯尺寸的一半)。如果是的话,将小球的x轴坐标限制在地毯边缘,然后将小球的速度设为0,即停止小球的移动。最后,通过将小球的位置更新为新位置,实现小球的移动。