c# Unity游戏测试

本文关键字:游戏测试 Unity | 更新日期: 2023-09-27 18:07:21

我目前正试图通过c#在unity中工作。到目前为止,我认为我做得很好。

这个游戏是一个堆栈游戏:

一个盒子会从左向右移动,你按空格键堆叠它如果它在你放置的最后一个方框上,它将继续前进。

但现在我的问题是:盒子是一个物体在Blender。

但是我希望我在播放器控制的当前盒子下面创建的盒子看起来像我在Blender中创建的盒子。

我怎样才能做到这一点?这里我只使用:

    GameObject cb = GameObject.CreatePrimitive(PrimitiveType.Cube);
    cb.transform.position = new Vector3(CurrentX, CurrentY, CurrentZ);

c# Unity游戏测试

我不认为这两行代码可以做你刚才提到的所有事情。希望这只是你代码中的一小段。

但现在我的问题是:盒子是一个物体在Blender。

但是我希望我创建的盒子在当前盒子的下面播放器控制看起来像我在Blender中制作的盒子。

你必须将盒子从Blender导出到.fbx, .blend或Unity中支持的任何其他3D模型格式。然后你可以将导出的文件导入Unity。这里有一个教程。

将导入的立方体/GameObject放入预制件中,然后使用Instantiate函数每次创建新的立方体而不是GameObject.CreatePrimitive

将当前代码更改为

public GameObject boxPrfab;
GameObject cb = Instantiate(boxPrfab, Vector3.zero, Quaternion.identity) as GameObject;
cb.transform.position = new Vector3(CurrentX, CurrentY, CurrentZ);

确保将预制件拖到boxPrfab

我假设你想要刷出的box GameObject已经存在于场景中。然后在Project选项卡中创建Prefab,右键单击该选项卡并选择Create -> Prefab。将预制件命名为敏感的东西,例如BoxPrefab。现在将box GameObjectHierarchy选项卡拖放到Project选项卡上,放到新创建的预制条目上。

现在你可以在脚本中添加一个公共成员变量来实例化盒子刷出,例如:

public GameObject PrefabBox = null;

然后将您之前从Project选项卡中创建的预制条目拖放到Inspector选项卡中的新属性PrefabBox上。在同一个脚本中,您可以实例化预制的衍生,例如通过以下代码:

GameObject boxSpawn = GameObject.Instantiate<GameObject>(
    PrefabBox,
    new Vector3(CurrentX, CurrentY, CurrentZ),
    PrefabBox.transform.rotation);

在Unity3d文档中找到关于动态实例化GameObjects的更多信息。

查找GameObject的语法。实例化。