您的位置:首页 > 其它

创建一个角色到场景的指定坐标,并放到指定目录下

2011-07-26 21:00 363 查看
有时候需要在场景中自动添加一些树木(这些树木的模型已近做成名称为'DemoTrees'的一个Prefab),种在指定的坐标点上,而且树木要放在指定的Tree目录下(即所有的树木都是Tree的子物体)。
<核心代码>
Public void CreateTree(float x, float y, float z){
GameObject tree = (GameObject)Resources.Load(“DemoTrees”, typeof(GameObject)); // 导入这棵树
GameObject aNewTree = GameObject.Instantiate(tree, new Vector3(x, y, z), Quaternion.identity) as GameObject; //把树克隆出来
aNewTree.name = "Tree001"; // 给这棵树起名字
aNewTree.transform.parent = GameObject.Find("某个路径").transform; // 将自己的父物体设置成“某个路径”
aNewTree.transform.position = new Vector3(aNewTree.transform.parent.x, aNewTree.transform.parent.y, aNewTree.transform.parent.z); // 放在父物体的原点(相对坐标)
aNewTree.transform.localScale = new Vector3(100, 100, 100); // 设置这棵树的大小
}
在做游戏的时候,感觉这一系列的操作感觉经常会用到:
比如进入一个新的场景、副本的时候,要初始化玩家的位置。
再比如要把摄像机附给玩家,塞到玩家“体内”,并给相对坐标、旋转角度等等。
这里说到初始旋转角度,需要注明一下,Unity不允许直接设置Rotation中X.Y.Z的值,我们需要这样做才可以:
先来一个Quaternion :
Quaternion quate = Quaternion.identity;
然后设置他的角度:
quate.eulerAngles = new Vector3(45, 0, 0); // 表示设置x轴方向旋转了45度
最后再把quate付给你要操作的Gameobject:
gameobject.transform.rotation = quate;
这样就搞定了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐