您可以使用以下代码实现这个功能:

using UnityEngine;

public class CopyAndMovePrefab : MonoBehaviour
{
    public GameObject prefab;
    public float moveSpeed = 1f;

    private GameObject copyPrefab;

    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.J))
        {
            StartCopyingAndMoving();
        }
    }

    private void StartCopyingAndMoving()
    {
        copyPrefab = Instantiate(prefab, transform.position, transform.rotation);
        StartCoroutine(MoveCopiedPrefab());
    }

    private IEnumerator MoveCopiedPrefab()
    {
        while (true)
        {
            copyPrefab.transform.Translate(Vector3.right * moveSpeed * Time.deltaTime);
            yield return new WaitForSeconds(0.1f);
        }
    }
}

在上述代码中,我们首先在Update()方法中检测是否按下了J键,如果按下了J键,则调用StartCopyingAndMoving()方法开始复制预制体并移动。

StartCopyingAndMoving()方法中,我们使用Instantiate()方法复制预制体,并将其位置和旋转与当前对象保持一致。然后,我们调用StartCoroutine()方法来开启一个协程,该协程会一直调用MoveCopiedPrefab()方法。

MoveCopiedPrefab()方法中,我们使用Translate()方法来将复制的预制体沿着x轴正方向移动。然后,我们使用yield return new WaitForSeconds(0.1f)来让协程暂停0.1秒,然后再次进行下一次移动。

这样,每隔0.1秒,复制的预制体就会向x轴正方向移动一定距离

按下j键复制一个预制体通过协程每隔01s一直移动该复制体复制体移动方向是transform的x正方向

原文地址: https://www.cveoy.top/t/topic/h6vf 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录