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的位置会因父物体的坐标而产生变化。

相关推荐
淡海水11 小时前
【节点】[Houndstooth节点]原理解析与实际应用
unity·游戏引擎·shadergraph·图形·houndstooth
微:xsooop1 天前
iOS上架被拒4.3(a) 10次到过审历程
flutter·unity·ios·uniapp
DoomGT1 天前
Physics Simulation - Hit Event的触发机制
ue5·游戏引擎·虚幻·虚幻引擎·unreal engine
jtymyxmz2 天前
《Unity Shader》14.1 卡通风格的渲染
unity·游戏引擎
天人合一peng2 天前
unity获得和修改button的text(TMP)
java·前端·unity
dzj20212 天前
Unity中使用LLMUnity遇到的问题(三)——如何配置和使用知识库
unity·llmunity·知识库大模型
Clank的游戏栈2 天前
Unity自动化美术资源校验工具(模型/材质规范检测)技术详解
unity·自动化·材质
Sator12 天前
Unity烘焙光打包后光照丢失问题
unity·光照贴图
Howrun7772 天前
虚幻引擎_核心框架
游戏引擎·虚幻
GLDbalala3 天前
Unity 实现一个简单的构建机
unity·游戏引擎