您好,欢迎来到Unity之家!   unity.jb51.net 
  • 首 页
  • 你问我答
  • 当前位置:首页 > 学习培训 > Unity编程 >
    创建角色到场景指定坐标
    时间:2015-01-26 10:58 来源:Unity之家 作者:unity.jb51.net 浏览:收藏 挑错 推荐 打印



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

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


    这样就搞定了。

    (责任编辑:脚印)
    免责声明:Unity之家部分内容来源于互联网,如有侵权,请联系我们,本站将立即进行处理。