当前位置: 首页 > news >正文

Unity Transform 组件

在 Unity 中,Transform 是一个非常重要的组件,它定义了物体的位置、旋转和缩放,几乎每个 GameObject 都包含一个 Transform 组件。Transform 组件的主要属性如下:

1. position  
   表示物体在世界空间中的位置。可以通过 transform.position 获取和设置。它是一个 Vector3,表示物体在 x、y、z 轴上的位置。
   csharp
   transform.position = new Vector3(0, 5, 10);
   

2. localPosition  
   表示物体在其父对象的本地空间中的位置。如果物体没有父对象,则 localPosition 和 position 是相同的。
   csharp
   transform.localPosition = new Vector3(1, 2, 3);
   

3. rotation  
   表示物体的旋转(四元数表示)。可以通过 transform.rotation 获取和设置旋转。四元数更适合用于处理3D旋转,以避免万向节锁问题。
   csharp
   transform.rotation = Quaternion.Euler(0, 90, 0);
   

4. localRotation  
   表示物体在本地空间中的旋转。如果物体有父对象,这个值会相对于父对象的旋转来计算。
   csharp
   transform.localRotation = Quaternion.Euler(45, 0, 0);
   

5. eulerAngles  
   物体的欧拉角表示的旋转。虽然 Unity 内部使用四元数来表示旋转,但欧拉角更直观,尤其是对于简单的旋转操作。
   csharp
   transform.eulerAngles = new Vector3(0, 180, 0);
   

6. localEulerAngles  
   表示物体的本地空间中的欧拉角旋转。
   csharp
   transform.localEulerAngles = new Vector3(30, 60, 90);
   

7. localScale  
   物体的本地缩放因子。可以通过 transform.localScale 获取和设置。通常是一个 Vector3,表示物体在 x、y、z 轴上的缩放。
   csharp
   transform.localScale = new Vector3(2, 2, 2);
   

8. parent  
   获取或设置物体的父对象。通过设置父对象,你可以控制该物体相对于父对象的位置、旋转和缩放。
   csharp
   transform.parent = someOtherTransform;
   

9. childCount  
   表示当前物体有多少个子对象。
   csharp
   int count = transform.childCount;
   

10. SetParent(Transform parent)  
    设置或更改物体的父对象。如果传入 null,物体将没有父对象。
    csharp
    transform.SetParent(newParentTransform);
    

11. Translate  
    用于移动物体,支持世界空间或本地空间。
    csharp
    transform.Translate(Vector3.forward  Time.deltaTime);
    

12. Rotate  
    用于旋转物体,支持世界空间或本地空间。
    csharp
    transform.Rotate(Vector3.up, 90);
    

13. LookAt  
    让物体朝向目标对象。
    csharp
    transform.LookAt(targetTransform);
    

通过 Transform 组件,你可以方便地控制游戏对象在场景中的位置、旋转和缩放等各种状态。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • docker部署个人网页导航
  • QFramework v1.0 使用指南 更新篇:20240918. 新增 BindableList
  • 瑞芯微RK3588开发板Linux系统添加自启动命令的方法,深圳触觉智能Arm嵌入式鸿蒙硬件方案商
  • Python爬虫解析工具之xpath使用详解
  • 从0开始学ARM
  • 【VitualBox】VitualBox的网络模式+网络配置
  • 情感类智能体——你的微信女神
  • 防火墙配置变更管理
  • 基于JAVA+SpringBoot+Vue的智能无人仓库管理
  • C++初阶学习——探索STL奥秘——反向迭代器
  • C++初阶学习——探索STL奥秘——标准库中的priority_queue与模拟实现
  • 【正负交替的分数求和】
  • OpenAI GPT o1技术报告阅读(3)-英文阅读及理解
  • 浅谈C++调用COM组件
  • 每日刷题(算法)
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • Android系统模拟器绘制实现概述
  • Flex布局到底解决了什么问题
  • maven工程打包jar以及java jar命令的classpath使用
  • React-Native - 收藏集 - 掘金
  • TypeScript迭代器
  • vue:响应原理
  • 高度不固定时垂直居中
  • 解析 Webpack中import、require、按需加载的执行过程
  • 力扣(LeetCode)21
  • 试着探索高并发下的系统架构面貌
  • 数组的操作
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • 一个项目push到多个远程Git仓库
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • - 转 Ext2.0 form使用实例
  • 如何正确理解,内页权重高于首页?
  • #define与typedef区别
  • #QT项目实战(天气预报)
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (二)c52学习之旅-简单了解单片机
  • (附源码)c#+winform实现远程开机(广域网可用)
  • (亲测有效)解决windows11无法使用1500000波特率的问题
  • (亲测有效)推荐2024最新的免费漫画软件app,无广告,聚合全网资源!
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (一) 初入MySQL 【认识和部署】
  • (转)Oracle 9i 数据库设计指引全集(1)
  • (转载)微软数据挖掘算法:Microsoft 时序算法(5)
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]
  • .equals()到底是什么意思?
  • .NET Standard 的管理策略
  • .NET 药厂业务系统 CPU爆高分析
  • @Validated和@Valid校验参数区别
  • [AI 大模型] Meta LLaMA-2
  • [Android] Upload package to device fails #2720
  • [AutoSar]BSW_Memory_Stack_003 NVM与APP的显式和隐式同步
  • [AX]AX2012 R2 出差申请和支出报告
  • [bzoj4010][HNOI2015]菜肴制作_贪心_拓扑排序