Unity中的Transform.SetParent()API

本文详细解析了Unity中SetParent方法的使用技巧,特别是第二个参数的作用。介绍了如何通过调整该参数实现物体变换属性的不同行为,帮助开发者更好地理解并运用此功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通常我们所用的SetParent是不带第二个参数的。

但是世界坐标系中的物体在与UGUI相结合使用时,往往会出现问题,这个问题基本上都出自于SetParent()的第二个参数。

首先看一个基础列子:

一个空的GameObject的Transform值:

一个Cube的Transform值:

他们的关系:

Game视图:

我们直接在Hierarchy面板中拖动Cube到空物体下,让t他成为空物体的子物体。

然后在Game视图中可以发现,Cube基本没有变化,而Transform值改变。

Cube的transform值:

刚才在面板中的操作相当于在代码中的操作Cube.SetParent(GameObject.transform)。(可以去试试)

所以,通俗一点来讲当SetParent方法只有第一个参数,或者第二个参数为true时,

物体的transform值会根据父物体的transform值做相应的改变,使物体在没有设置父物体前在世界坐标系中的大小旋转位置和设置父物体后在世界坐标系中的位置旋转大小一致。

当我们将cube拖出来,添加脚本

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class NewBehaviourScript1 : MonoBehaviour {

    public Transform parentTransform;

    void Start () {
        transform.SetParent(parentTransform, false);
	}

    /*private void Start()
    {
        transform.SetParent(parentTransform, true);
    }*/

}

然后在Unity中发现:

Game视图:

Cube的transform值:

所以通俗一点来讲,当第二个参数为false的时候。

物体的transform不会根据当前设置的父物体的transform的值所改变,也就是transform值不变。

这样Cube在设置父物体前后就会有所改变了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值