java 转 unity_Unity C#从预制件实例化并转换为GameObject

在Unity with C#中,我试图从预制件实例化并将脚本分配给新对象 . 为此,我相信我需要将新对象转换为GameObject . 但是,Instantiate的返回类型是UnityEngine.Object

来自Unity manual:

public GameObject wreck;

...

void KillSelf () (

...

GameObject wreckClone = (GameObject) Instantiate(wreck, transform.position, transform.rotation);

但是,这会导致InvalidCastException . 我在这个论坛上看到它提到试试这个:

UnityEngine.Object uo = Instantiate(...

GameObject go = (GameObject)go;

然而,这会导致相同的例外 .

我看过一些帖子暗示试图施放:

...Instantiate(...) as GameObject;

但是,编译器似乎不支持此语法 .

这非常令人困惑 . 我正在从(大概是正确的)手册和堆栈溢出答案中复制一小段代码,它们似乎没有起作用 .

我不确定哪些信息可以帮助解决这个难题,所以请问我需要什么 .

到目前为止,我已尝试在尝试转换之前记录实例化的对象 . 它显示为ThrownFood(克隆)(UnityEngine.transform) . 我不知道为什么会说改造 . 我没有任何东西告诉它被转换为变换 .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Unity中,预制件和实例是非常常见的概念。预制件是一种可重复使用的对象,可以创建多个实例。而实例则是在场景中创建一个新的对象实例,该实例可以被修改、移动和删除,而不会影响预制件或其他实例。 下面是一个简单的示例,演示如何在Unity中添加对象实例: 1. 首先,打开Unity编辑器并创建一个新场景。 2. 在场景中创建一个新的空对象,此空对象将用作容器来保存实例的对象。 3. 然后,创建一个新的预制件。您可以在项目视图中右键单击,选择“Create”->“Prefab”,然后将其命名为“Cube”。 4. 将预制件拖动到场景中的容器对象中,这将创建一个预制件的实例。 5. 在场景中选择容器对象,然后在Hierarchy视图中右键单击并选择“Create Empty”,这将创建另一个空对象。 6. 您现在可以将此新对象命名为“SpawnPoint”,以便于识别。 7. 接下来,打开脚本编辑器并创建一个新的C#脚本。将以下代码添加到脚本中: ``` using UnityEngine; public class SpawnObject : MonoBehaviour { public GameObject objectToSpawn; public Transform spawnPoint; void Start() { Instantiate(objectToSpawn, spawnPoint.position, spawnPoint.rotation); } } ``` 8. 在场景中选择SpawnPoint对象,然后将SpawnObject脚本添加到该对象上。 9. 在SpawnObject脚本组件中,将objectToSpawn属性设置为Cube预制件,并将spawnPoint属性设置为SpawnPoint对象的Transform组件。 10. 您现在可以运行场景,并查看Cube预制件的实例。您可以尝试通过更改SpawnPoint对象的位置来更改实例的位置,并且可以通过更改Cube预制件的属性来更改实例的外观。 希望这个示例能够帮助您了解Unity中的预制件和实例的基本概念,以及如何将它们用于创建对象实例

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值