2015-05-08 32 views
1

我制作了Blender模型并将其拖放到资产文件夹(.blend,而不是FBX)中。现在我做类似如何使用脚本在Unity中放置Blender模型?

var robot = GameObject.Instantiate (Resources.Load("robot")) as GameObject; 
robot.transform.position = new Vector3 (description.X, description.IsRound ? description.ZSize : description.ZSize/2f, description.Y); 
robot.AddComponent<Rigidbody>(); 
robot.renderer.material.color = Color.green; 
robot.transform.localScale = new Vector3 (description.XSize, description.ZSize, description.YSize); 
robot.transform.rotation = Quaternion.Euler (0, (float)description.Yaw.Grad, 0); 
robot.transform.localScale = new Vector3 (30, 30, 30); 

但是当我尝试启动它时,我在场景中什么都没有得到。如果我使用立方体例如

var robot = GameObject.CreatePrimitive(PrimitiveType.Cube); 

我得到立方体。我的问题是如何正确加载blender模型并从中创建GameObject?

+0

是否有一个特定的原因,您为什么使用'Resources.Load'而不是引用预制? –

+0

另外,请详细说明“我在场景中什么都没有”的确切含义。你没有得到任何错误?场景层次结构中是否有新的游戏对象? –

+0

我使用'Resource.Load',因为我在互联网上找到了这个选项,我不明白如何使用预制参考。我没有得到任何错误,只是空的场景。是的,场景层次结构中没有任何对象。 – IvanSorokin

回答

0

Resources用于加载从Web动态下载的资产。如果项目中已有资产或预制件,则可以从编辑器中的脚本链接到Assets文件夹中的预制/型号文件。

public GameObject Model; // set it in the editor 
void SomeMethod() 
{ 
    var robot = GameObject.Instantiate (Model) as GameObject; 
    robot.transform.position = new Vector3 (description.X, description.IsRound ? description.ZSize : description.ZSize/2f, description.Y); 
    robot.AddComponent<Rigidbody>(); 
    robot.renderer.material.color = Color.green; 
    robot.transform.localScale = new Vector3 (description.XSize, description.ZSize, description.YSize); 
    robot.transform.rotation = Quaternion.Euler (0, (float)description.Yaw.Grad, 0); 
    robot.transform.localScale = new Vector3 (30, 30, 30); 
} 
+0

我在资产中有搅拌机模型,如何在模型中正确设置它? – IvanSorokin

+0

在这一点的代码我只知道资产的名称 - “机器人” – IvanSorokin

+0

你的资产文件夹中有一个资产文件? –