(三)Unity3D编程实战-伪太阳系

前置知识:


空间与运动

1. 绝对空间与相对空间

Unity3D的坐标系统分为世界坐标系(绝对位置)和局部坐标系(相对于父类的坐标)。世界坐标系为左手系,即头顶朝Y,人正面朝X,左手伸直朝Z。

2. 坐标变换与运动

Unity3D逐帧渲染,不同机器性能不同,帧率也就不同,所以为了让游戏世界和真实世界时间同步,需要进行调整。Ex:两台机器,A:每秒30帧。B:每秒60帧。假设时间规模(time.scale)为1,速度为1。如果不进行调整,A每秒路程:30。B为60。为了使A,B每秒路程一样,需要乘以Time.deltaTime,进行缩放调整。

  • 欧拉角:以某个轴为法向量旋转,范围[0,360)。EX:(0,45,0),左手系,围绕Y轴顺时针转动45度。
  • Rotation:(Quaternion)是一个四元数。

3. TransForm对象与简单运动

  • 平移translate
  • 旋转Rotate
  • 绕转RotateAround
  • 指向LookAt

4. Vector3对象与平移

  • 计算:
    normalized(归一化)
    magnitude(计算长度)
    向量的各种计算(dot,project,angle,distance …)
  • 追踪MoveTowards
  • 转向RotateTowards
  • 插值Lerp

5. Quaternion对象与旋转

四元数有很好的计算特性:

  • eular轴旋转矩阵 AngleAxis
  • 向量旋转 FromToRotation
  • 指向LookRotation
  • 插值 Slerp

面向对象设计技巧

1. 单实例模式

2. 门面模式

3. MVC架构

猜你喜欢

转载自blog.csdn.net/vc43vc/article/details/82314572