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

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 组件,你可以方便地控制游戏对象在场景中的位置、旋转和缩放等各种状态。


http://www.kler.cn/news/311521.html

相关文章:

  • 【GO开发】MacOS上搭建GO的基础环境-Hello World
  • 2024-1.2.12-Android-Studio配置
  • HttpMediaTypeNotAcceptableException: No acceptable representation问题解决方法
  • 解决使用nvm管理node版本时提示npm下载失败的问题
  • 选择排序
  • DPDK 简易应用开发之路 2:UDP数据包发送及实现
  • Day14:学生信息管理系统
  • 【Qt网络编程】Tcp多线程并发服务器和客户端通信
  • Laravel邮件发送:从配置到发邮件的指南!
  • 从零开始讲DDR(2)——DDR的核心技术
  • 软考架构-架构风格
  • 全网最适合入门的面向对象编程教程:50 Python函数方法与接口-接口和抽象基类
  • 2-95 基于matlab的模板定位
  • 阿里云容器服务Kubernetes部署新服务
  • springboot实战章节小结
  • SpringSecurity原理解析(七):权限校验流程
  • TypeScript异常处理
  • Spring IoC 配置类 总结
  • LabVIEW多语言支持优化
  • [数据集][目标检测]不同颜色的安全帽检测数据集VOC+YOLO格式7574张5类别
  • 版本控制之Git
  • U盘显示未被格式化:深入解析、恢复策略与预防之道
  • 前端mock了所有……
  • firewalld实现NAT端口转发
  • 美国站群服务器优化技巧解析
  • Opencv边缘检测(四)
  • 梯度计算中的一些算子
  • 魔方财务迁移指南
  • 【mysql面试题】mysql复习之常见面试题(二)
  • Conda和pip 清空缓存