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

有时候需要在场景中自动添加一些树木(这些树木的模型已近做成名称为'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;

这样就搞定了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值