Unity 常用旋转API

Unity中的旋转通常可以用Transform 直接控制 和 rotation 控制两种方式。

一、Transform控制(工程中的scene1)

1.1 Transform.Rotate

旋转某个角度

函数定义

public void Rotate(Vector3 eulerAngles);
public void Rotate(Vector3 axis, float angle);
public void Rotate(Vector3 eulerAngles, Space relativeTo);
public void Rotate(float xAngle, float yAngle, float zAngle);
public void Rotate(Vector3 axis, float angle, Space relativeTo);
public void Rotate(float xAngle, float yAngle, float zAngle, Space relativeTo);
这个函数通常用于Update函数中,用于不断的旋转。如下

void Update () {
     //以每秒rotateSpeed的速度绕着y轴旋转
     transform.Rotate(0, rotateSpeed * Time.deltaTime, 0);
}
1.2 Transform.RotateAround

以某点为中心旋转。

函数定义

public void RotateAround(Vector3 axis, float angle);
public void RotateAround(Vector3 point, Vector3 axis, float angle);
这个函数通常也在Update中,不断地围绕着点运动。如下:

void Update () 
{
    //在Y轴以每秒rotateSpeed的速度围绕着transformCenter 旋转。
    //这会改变物体的位置和旋转。
    transform.RotateAround(transformCenter.position,Vector3.up,rotateSpeed * Time.deltaTime);
}
1.3 Transform.eulerAngles

### Unity常用 API 及其使用方法 #### 创建游戏对象 在 Unity 的开发过程中,创建游戏对象是一个常见的操作。以下是几种主要的方法及其对应的实现方式: 1. **通过构造函数创建空的游戏对象** 使用 `new GameObject()` 方法可以直接创建一个新的空游戏对象,并为其指定名称。 ```csharp GameObject go = new GameObject("MyEmptyGameObject"); ``` 这种方法通常用于创建容器型的对象,比如作为其他组件的父级节点。 2. **通过 Instantiate 实例化预制体或其他对象** `Instantiate` 是一种非常强大的工具,允许开发者复制现有的游戏对象或预制体(Prefab)。它支持多种参数配置,例如位置和旋转等。 ```csharp GameObject prefabInstance = (GameObject)Instantiate(prefab, position, rotation); ``` 此外还可以传递可选的父对象参数以便于管理层次结构[^2]。 3. **利用 CreatePrimitive 构建基础几何图形** 对于快速原型设计或者测试场景构建来说,直接生成一些简单的形状是非常有用的。 ```csharp GameObject primitiveSphere = GameObject.CreatePrimitive(PrimitiveType.Sphere); ``` 上述代码片段展示了如何简便地添加球形到当前活动场景之中。 #### 组件继承体系概述 Unity 的核心设计理念之一就是基于组件(Component-based architecture),其中每一个 MonoBehaviour 都是从 Component 类派生出来的特殊形式。这意味着当定义自己的自定义行为逻辑时,默认已经获得了大量内置的功能支持,无需重复造轮子。 具体而言,任何用户编写的脚本实际上都是某种类型的 Component 子类;因此能够自动享有来自更高级别的 Object 所提供的通用服务接口,像启用状态控制(enable/disable),生命周期事件处理(Awake(), Start() etc.)等等[^3]。 下面列举几个重要的类别说明它们之间的关联性: - **Object**: 一切事物的基础抽象表示. - **Component**: 提供附加特性的机制给实体单位使用的基底单元. - **Behaviour & Monobehaviour**: 定义动态交互规则的具体表现层. 这些构成了整个引擎内部运作框架的重要组成部分[^1]. ```csharp public class ExampleScript : MonoBehaviour { void Update(){ transform.Translate(Vector3.forward * Time.deltaTime); //移动物体向前走 } } ``` 上述例子简单演示了一个持续更新过程中的位移变换应用案例。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值