首页 > 其他分享 >【Unity学习笔记】Transform—父子关系

【Unity学习笔记】Transform—父子关系

时间:2022-09-07 15:55:57浏览次数:64  
标签:System 对象 Lesson9 Transform transform 父子关系 Unity Collections using

1.获取和设置父对象

子对象在世界坐标系下的位置是加法运算:子对象在世界坐标系下的位置 = 子对象的位置 + 父对象的位置
子对象在世界坐标系下的缩放是乘法运算:子对象在世界坐标系下的位置 = 子对象的位置 + 父对象的位置

现有:
在这里插入图片描述
Lesson9脚本中的代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Lesson9 : MonoBehaviour
{
    void Start()
    {
        //获取父对象
        //可以通过Transform 获取我自己的父对象是谁
        print(this.transform.parent.name);

        //设置父对象
        //1.断绝父子关系
        this.transform.parent = null;

        //2.找个新父亲(需要赋值一个对象的transform)
        this.transform.parent = GameObject.Find("Father2").transform;

        //3.通过API来进行父子关系的设置
        //参数1 父对象的Transform
        //参数2 是否保留本对象在世界坐标系下的位置、角度、缩放信息
        //      如果填true,则会保留世界坐标系下的状态和父对象进行计算 得出想对父对象的本地坐标系的信息
        //      如果填false,则不会进行计算,直接把在世界坐标系下的信息 赋值到在本地坐标系中
        this.transform.SetParent(GameObject.Find("Father2").transform, true);
    }
}

运行:
在这里插入图片描述

2.抛弃所有子对象

现有:
Lesson9脚本的代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Lesson9 : MonoBehaviour
{
    void Start()
    {
        //与自己的所有子对象 断绝关系
        this.transform.DetachChildren();
    }
}

运行:
在这里插入图片描述

3.获取子对象

现有:
在这里插入图片描述
Lesson9脚本的代码:

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

public class Lesson9 : MonoBehaviour
{
    void Start()
    {
        //1.按名字查找儿子
        //  返回一个儿子的transform信息
        //  只能找儿子,找不了孙子
        //  transform.Find能找到失活的儿子,而GameObject相关的查找 是找不到失活对象的
        print(this.transform.Find("Son2").name);

        //2.得到有多少个儿子(失活的儿子也算,孙子不算)
        print(this.transform.childCount);

        //3.通过索引,去得到自己对应的儿子
        //  返回值是transform,可以得到对应的儿子位置相关信息
        //  注意 索引越界会报错
        this.transform.GetChild(0);

        //4.遍历儿子
        for (int i = 0; i < this.transform.childCount; i++)
        {
            print(this.transform.GetChild(i).name);
        }
    }
}

运行:
在这里插入图片描述

4.儿子的操作

现有:
在这里插入图片描述
Lesson9脚本的代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Lesson9 : MonoBehaviour
{
    //要进行以下操作的儿子
    public Transform son;

    void Start()
    {
        //1.判断传入的这个对象是不是自己父亲
        if (son.IsChildOf(this.transform))
        {
            print("传入的这个对象是我父亲");
        }

        //2.得到自己作为儿子的编号
        print(son.GetSiblingIndex()); //将会打印 0

        //3.把自己设置成第一个儿子
        son.SetAsFirstSibling();

        //4.把自己设置成最后一个儿子
        son.SetAsLastSibling();

        //5.把自己设置为指定个儿子
        //  索引越界也不会报错,而是直接把它设置到最后一个
        son.SetSiblingIndex(1);
    }
}

标签:System,对象,Lesson9,Transform,transform,父子关系,Unity,Collections,using
From: https://www.cnblogs.com/ElecSheep/p/16665743.html

相关文章

  • Unity2d SunnyLand (一) 开发环境 + Tilemap
    一、开发环境.net6.0+.netframework4.7.1dev +vscode +unity2022.1.15将vscode设置为默认脚本编辑器  二、Tilemap1.导入资源  2.设置属性 ......
  • Unity学习资源(超全)
     官方资料UnityUserManual手册Unity-ScriptingAPI(API详解)Unity-Learn-Modules(官方视频教程,适合英语好的同学) 下面是收集的一些不错的视频教程,对......
  • manim svg Transform
    Transform基于路径的条数来操作1、如果从n条路径Transform到n条路径,那么只有Transform效果(最佳效果)(这里的一条路径可以是闭合的,也可以是不闭合的,也可以是闭合但有分支的)2......
  • CSS制作移动动画效果--伪类+transition+ transform+ animation的使用
    一、常用概念:1.TransformTransform属性应用于元素的2D或3D转换。这个属性允许你将元素旋转,缩放,移动,倾斜等,它包含有以下属性:(1)矩阵matrix(2)移动translate(3)缩放s......
  • unity 人物行走
    1、双击player,打开AnimatorController 增加变量,使变量与状态转换关联起来。 创建混合树。建两个,运动中和静止时的混合树,并为这两个混合树之间添加状态转换。......
  • [心情] 解放CSS 单行transform,分离scale, translate 和rotate 吧!
    [心情]解放CSS单行transform,分离scale,translate和rotate吧!定期都有在关注YoutubeWebDevSimplified的介绍前端新讯的影片,虽然很早就知道有一般拆解Transform属......
  • unity新建项目与物体的创建
    新建项目1.新建项目项目:每一个游戏都是一个独立的项目。1.打开Unity,在Projects面板上输入“Projectname”(项目名称);2.然后在“Location”中选择本地存储位置;3.选......
  • [心情] 解放CSS 单行transform,分离scale, translate 和rotate 吧!
    [心情]解放CSS单行transform,分离scale,translate和rotate吧!定期都有在关注YoutubeWebDevSimplified的介绍前端新讯的影片,虽然很早就知道有一般拆解Transform属......
  • ECCV 2022 | k-means Mask Transformer
    前言 目前,大多数现有的基于transformer的视觉模型只是借用了自然语言处理的思想,忽略了语言和图像之间的关键差异,特别是空间扁平像素特征的巨大序列长度。这阻碍了在像素特......
  • 读UnityShader入门精要第六章-Unity中的基础光照
    1.我们如何看到这个世界1.1 光源光是由光源发出的,在实时渲染中,光源被当成一个没有体积的点.在光学中,使用辐照度(irradiance)来量化光.当光打在一个平面上......