unity学习笔记-相对位置和绝对位置

相对位置和绝对位置

  • 需求
  • 实现
  • 代码

需求

让子物体在父级的位置下保持相对位置

实现

先获得父级和子级的transform.position
这个是在世界坐标下的绝对位置
然后相减获得子级在父级下的相对位置
最后给子级赋值
使用gameobject.transform.localposition这个方法,将前面获得的相对位置赋值进去即可

代码

	private GameObject 父级;
    private GameObject 子级; 
    private Vector3 相对位置;
		父级= GameObject.Find("父级");
        子级= GameObject.Find("子级");
        相对位置= 父级.transform.position - 子级".transform.position;
		子级.transform.localPosition = 相对位置;

注意,这里中文是为了方便理解,代码中一定要用英文

同天下午更新
这里还需要注意一点
如果这个脚本挂载在很多物体上的话,相对位置需要写死,这个直接在unity的inspecter看子物体的transform的position属性就可以了
如果这个脚本挂在在很多物体上,必须保证你的相对位置不会被其他脚本所影响,否则就会出现相对位置不正确导致的移动出现bug

你可能感兴趣的:(unity,unity,游戏开发)