zoukankan      html  css  js  c++  java
  • Unity中的Transform.SetParent()API

    通常我们所用的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在设置父物体前后就会有所改变了。

  • 相关阅读:
    为linux系统添加虚拟内存swap分区
    使用exec命令删除前几天产生的日志
    编写脚本:访问一网站,每5分钟访问一次,如果访问成功,将访问记录保存到日志,如果访问失败,则发送邮件至指定邮箱
    html,css学习实践总结
    css清除浮动
    bootstrap简单使用
    jquery笔记
    HTML,CSS笔记
    node学习: package.json
    node笔记
  • 原文地址:https://www.cnblogs.com/Dearmyh/p/10000058.html
Copyright © 2011-2022 走看看