赞
踩
子对象在世界坐标系下的位置是加法运算:子对象在世界坐标系下的位置 = 子对象的位置 + 父对象的位置
子对象在世界坐标系下的缩放是乘法运算:子对象在世界坐标系下的位置 = 子对象的位置 + 父对象的位置
现有:
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); } }
运行:
现有:
Lesson9脚本的代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Lesson9 : MonoBehaviour
{
void Start()
{
//与自己的所有子对象 断绝关系
this.transform.DetachChildren();
}
}
运行:
现有:
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); } } }
运行:
现有:
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); } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。