当前位置: 首页 > article >正文

Unity 关于SetParent方法的使用情况

在设置子物体的父物体时,我们使用SetParent再常见不过了。

  • 但是通常我们只是使用其中一个语法:
public void SetParent(Transform parent);

使用改方法子对象会保持原来位置,跟使用以下方法效果一样:

public Transform tran;
gameObject.transform.parent = tran;
  • 其实它还有一个语法:
public void SetParent(Transform parent, bool worldPositionStays);

这里多了一个布尔值参数worldPositionStays,作用是指定子级对象在设置父级后是否保持其在世界坐标系中的位置,为true时,子对象保持原来位置,为false时,子对象的位置、旋转和缩放转换为相对于新的父级对象的局部坐标系。

如这里有3个对象:

tran、tran1、tran2,它们坐标分别为:

分别使用以下方法,把tran1、tran2移动到tran下面

    public Transform tran;
    public Transform tran1;
    public Transform tran2;
   
    void Start()
    {
        tran1.SetParent(tran);
        tran2.SetParent(tran, false);
    }

它们的坐标变化如下:

我们发现使用 tran1.SetParent(tran)方法,tran1局部坐标改变了,使用tran2.SetParent(tran, false),tran2的局部坐标没有改变。

这在实际的效果就是tran1的位置没有改变,tran2的位置会因父物体的坐标而产生变化。


http://www.kler.cn/a/157865.html

相关文章:

  • IPD|企业产品研发的致胜法宝——TR技术评审
  • MySQL的多表查询
  • C++现代模板元编程
  • JDBC操作
  • SAP_MM_实现当期研发费用统计方案
  • c++--运算符重载
  • 无需繁琐编程 开启高效数据分析之旅!
  • 神经网络常用归一化和正则化方法解析(一)
  • 深入了解JavaScript事件绑定:实现高效可靠的事件处理
  • SAP ABAP Table Control的制作
  • 关于前端学习的思考-vertical-align的用法
  • JDK8新特性——Stream流
  • 基于Java SSM酒店客房管理系统
  • Flask 快速入门
  • 在JDBC中使用DataSource获取连接
  • 配置texstudio编译器
  • Vue学习计划--Vue2(二)Vue代理方式
  • 2023-2024-1-高级语言程序设计-第2次月考编程题
  • 上传文件获得下载链接方法:直链!直链!
  • vue3,元素可拖拽,自定义指令