• Unity脚本API—Transform 变换


    场景中的每一个对象都有一个Transform。用于储存并操控物体的位置、旋转和缩放。每一个Transform可以有一个父级,允许你分层次应用位置、旋转和缩放。可以在Hierarchy面板查看层次关系。他们也支持计数器(enumerator),因此你可以使用循环遍历子对象。

    1. using System.Collections;
    2. using System.Collections.Generic;
    3. using UnityEngine;
    4. /// <summary>
    5. /// Transfrom 提供了查找(父、根、子)变换组件功能、改变位置、角度、大小功能
    6. /// </summary>
    7. public class TransfromDemo : MonoBehaviour
    8. {
    9.     public Transform tf;
    10.     private void OnGUI()
    11.     {
    12.         if (GUILayout.Button("foreach -- transfrom"))
    13.         {
    14.             //场景中的每一个对象都有一个Transfrom,用于存储并操控物体的位置、旋转、缩放。
    15.             //每一个Transfrom可以有一个父级,允许你分层次应用位置、旋转和缩放。
    16.             //可以在Hierarchy面板查看层次关系。他们也支持计算器,因此你可以使用循环遍历子对象 
    17.             foreach (Transform child in this.transform)
    18.             {
    19.                 //child为每个子物体的变换组件
    20.                 print(child.name);
    21.             }
    22.         }
    23.         if (GUILayout.Button("root"))
    24.         {
    25.             //获取根物体变换组件
    26.             Transform rootTF = this.transform.root;
    27.             Debug.Log(rootTF.name);
    28.         }
    29.         if (GUILayout.Button("parent"))
    30.         {
    31.             //获取父物体变换组件
    32.             Transform parentTF = this.transform.parent;
    33.             Debug.Log(parentTF.name);
    34.         }
    35.         if (GUILayout.Button("Setparent"))
    36.         {
    37.             //设置父物体
    38.             //当前物体的位置 视为世界坐标position
    39.             //this.transform.SetParent(tf,true);
    40.             //当前物体的位置 视为localPosition
    41.             this.transform.SetParent(tf,false);
    42.         }
    43.         if (GUILayout.Button("Find"))
    44.         {
    45.             //根据名称获取子物体
    46.             Transform tf = this.transform.Find("子物体名称");
    47.             Debug.Log(tf.name);
    48.             Transform tf1 = this.transform.Find("子物体名称/子物体名称");
    49.             Debug.Log(tf1.name);
    50.         }
    51.         if (GUILayout.Button("GetChild"))
    52.         {
    53.             int count = this.transform.childCount;
    54.             //根据索引获取子物体  不能获取孙子物体
    55.             for (int i = 0;i < count;i++) 
    56.             { 
    57.                 Transform childTf = this.transform.GetChild(i);
    58.             }
    59.         }
    60.         //练习:在层级未知情况下查找子物体
    61.         
    62.         if (GUILayout.Button("pos / scale"))
    63.         {
    64.             //物体相对于世界坐标系原点的位置
    65.             //this.transform.position;
    66.             //物体相对于父物体轴心点的位置
    67.             //this.transform.localPosition;
    68.             //相对于父物体缩放比例  1  2  1
    69.             //this.transform.localScale;
    70.             //理解为:物体与模型缩放比例(自身缩放比例 * 父物体缩放比例)
    71.             //this.transfrom.lossyScale
    72.             //如:父物体localScale为3  当前物体localScale为2
    73.             //    lossyScale则为6
    74.         }
    75.         if (GUILayout.Button("Translate"))
    76.         {
    77.             //向自身坐标系 Z轴 移动1米
    78.             this.transform.Translate(0, 0, 1);
    79.             //向世界坐标系 Z轴 移动1米
    80.             //this.transform.Translate(0, 0, 1, Space.World);
    81.         }
    82.         if (GUILayout.Button("Rotate"))
    83.         {
    84.             //向自身坐标系 y轴 旋转10度
    85.             //this.transform.Rotate(0, 10, 0);
    86.             //向世界坐标系 y轴 旋转10度
    87.             this.transform.Rotate(0, 10, 0, Space.World);
    88.         }
    89.         if (GUILayout.RepeatButton("RotateAround"))
    90.         {
    91.             //向世界坐标系 绕y轴旋转
    92.             transform.RotateAround(Vector3.zero, Vector3.up, 1);
    93.         }
    94.     }
    95. }

  • 相关阅读:
    Python Flask Web教程:make_response的详细用法
    离线数据仓库第二讲
    虹科案例 | AR内窥镜手术应用为手术节约45分钟?
    阿里内部面试官手册熬夜也要啃完的,吃透直接拿下大厂offer
    关于博主的介绍
    【云原生Docker系列第二篇】Docker容器管理(我在人间贩卖黄昏,只为带着星光照耀你)
    子网掩码的作用
    Canal安装
    【软件与系统安全笔记】五、内存破坏防御
    Sound Siphon for Mac:音频处理与录制工具
  • 原文地址:https://blog.csdn.net/LOVE_Me__/article/details/125462972