按下j键复制一个预制体通过协程每隔01s一直移动该复制体复制体移动方向是transform的x正方向
您可以使用以下代码实现这个功能:
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轴正方向移动一定距离
原文地址: https://www.cveoy.top/t/topic/h6vf 著作权归作者所有。请勿转载和采集!