unity用代码加载并创建一个预制体实例以及设置position

GameObject go = GameObject.Instantiate(Resources.Load("my1")) as GameObject;
go.transform.position = new Vector3(0, 0, 0);

预制体要放到Resources文件夹里
加载后 不需要addchild啥的
他会直接显示在舞台上
这一点和h5引擎什么的都不一样

如果你想设置他的父亲是谁
那么这样做

GameObject father = GameObject.Instantiate(Resources.Load("my1")) as GameObject;
father.transform.position = new Vector3(1, 0, 1);
GameObject child = GameObject.Instantiate(Resources.Load("my1")) as GameObject;
child.transform.parent = father.transform;
child.transform.localPosition = new Vector3(1, 0, 1);

记住 设置父亲后 之前的坐标会变为0,0,0
所以设置后需要自己设置下坐标

相信各位看到了
我设置的是localPosition 而不是 position
为什么呢?
因为 position 是 The world space position of the Transform.
而localPosition 是 Position of the transform relative to the parent transform.

那如果直接设置child的position 会咋样呢?
会显示在世界坐标系里你设置的位置。
unity系统会自动换算一下
就比如
我设置刚才那个child的position为0,0,0
那么他的坐标会变为
在这里插入图片描述

也就是说,不需要你考虑父容器的坐标偏移。unity会自动给你设置好。这一点确实很方便。
以前h5总是要 localtoglobal 挺麻烦的。

forward什么的 其实都是针对于世界坐标的

在这里插入图片描述
unity面板里显示的是local position
而在程序里设置的position 其实是世界坐标系

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值