可以通过以下代码实现:

using UnityEngine;
using System.Collections;

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

    private GameObject copyPrefab;
    private bool isMoving = false;

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.J))
        {
            // 复制预制体
            copyPrefab = Instantiate(prefab, transform.position, transform.rotation) as GameObject;
            // 启动协程移动复制体
            StartCoroutine(MoveCopyPrefab());
        }
    }

    IEnumerator MoveCopyPrefab()
    {
        isMoving = true;
        while (isMoving)
        {
            // 在x轴方向上移动复制体
            copyPrefab.transform.Translate(Vector3.right * moveSpeed * Time.deltaTime);
            yield return null;
        }
    }
}

首先,在Unity编辑器中,将上述代码添加到一个空物体上的脚本组件中。

然后,在该脚本组件的属性面板中,将需要复制的预制体赋值给prefab变量。

在游戏运行时,按下J键即可复制预制体,并通过协程移动复制体。复制体的移动方向是通过transform组件的x轴正方向实现的,移动速度可以通过moveSpeed变量进行调整

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

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

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