unity3d学习
Unity是一款跨平台的实时3D开发引擎,广泛应用于游戏开发、虚拟现实(VR)、增强现实(AR)、建筑可视化、影视动画等领域。其核心优势在于易用性、强大的工具链以及对多平台(PC、移动端、主机等)的兼容性。
unity
什么是unity
Unity是一款跨平台的实时3D开发引擎,广泛应用于游戏开发、虚拟现实(VR)、增强现实(AR)、建筑可视化、影视动画等领域。其核心优势在于易用性、强大的工具链以及对多平台(PC、移动端、主机等)的兼容性。
1.unity窗口布局
1.默认窗口布局:

Hierarchy层级窗口:

Scene场景窗口:

inspector检查器窗口:

会显示选择物体的属性
project项目窗口:

console控制台:

2.添加物体:

(GameObject(游戏物体)->3D Object->Cube(添加立方体))
2.布局与字体
1.恢复初始布局:

(Window->Layouts->Default)
2.字体大小设置:

(Edit->Preferences->UI Scanling)
3.场景和一些基本操作
1.场景(创建文件后自动生成):

在Project下有一个Assets(资源)->Scenes(场景)->SampleScene.unity 样例场景
创建后再Hierarchy(层级)下有一个Main Camera(摄像机(拍摄看到的画面))和Directional Light(平行光(增加照明))
2.游戏物体:
2.2中讲了如何添加物体
1.要么在Hierarchy中直接点击物体Cube(此时物体会发橙光)要么直接在3D视图里面直接点击物体


(使用鼠标滚轮方大正方体)
右键Cube->Rename(修改Cube的名字)
右键Cube->Delete(删除Cube)

2.选中物体后右侧会出现很多属性,叫做组件

例如说Transform组件显示的是物体的坐标
3.移动操作move tool:

先点击move tool再点击物体,拖动xyz轴物体就可以移动(移动的过程中Transform下面的Position坐标也会有改变)

3.3D视图:
3D视图是Scene场景窗口里面的视图。
1.导航器Gizmo:
表示世界坐标的方向

Y轴表示天地方向,X和Z表示东南西北水平面的方向。
2.栅格Grid:
表示X和Z坐标平面,这个格子表示栅格,栅格就是表示水平面或者是高度为0的那个XZ平面。

隐藏栅格:


(隐藏后重新点击又会显示栅格)
点击下拉框调节栅格透明度·(默认0.5):

关闭或者打开天空(与栅格操作一样):

3.视图旋转缩放平移:
1.旋转视图:
ALT+LMB(鼠标左键):
相当于旋转主页面从不同的角度去看Scene。

2.缩放视图:
鼠标滚轮
ALT+RMB(鼠标右键)精细放缩
3.平移视图:
MMB鼠标中键(按鼠标滚轮按下去)
4.导航器相关操作:
1.恢复方向:
点击小方块+shift
例如:

恢复


点击小方块+shift恢复
2.方向:
点击Y轴(顶视图),X(右视图),Z(前视图).直切切换视角,也可以手动切换器。

5.世界坐标系:
3D游戏世界的坐标系使用的是左手系。
物体定义坐标,按照(X,Y,Z)定义,也可以直接在Inspector->Transform->Position窗口指定。

6.视野中心:
视野中心,表示是当前3D视图的中心点。
在旋转视图时,视图围绕着视图中心点旋转。
注意:
1.unity中选择物体后(把鼠标放到Scene中)点F(将物体放到中心点),按Ait+LMB(左键)可以围绕物体旋转。(根据版本的不同会有差异)。
2.默认情况下添加物体,是在视图中心点生成。
6.透视和正交:
1.透视视图Perspective:
透视视图Perspective近大远小。
透视图下,物体‘近大远小’。正交视图下,物体的显示与距离无关。

(这两个物体看起来不是一样大,遵循近大远小自然规律)
2.正交视图Orthographic:
正交视图Orthographic,又称为等距视图Isometric。
正交视图下,物体的显示与距离无关。
正交视图常用于物体的布局,对齐操作。
点击Persp切换成正交视图:


(正交视图)

3.透视,广角设定:
摄像机的广角Field.
默认为六十度。
广角越大,透视畸变变厉害,可设置为30-40度。(当拍摄角度位于边缘时就会发生畸变)


如何调节:

Scene Camera(场景摄像机)->Field of View(广角)设置小一点畸变就会变小。
4.物体和相关的操作
1.3D原生物体:
unity下自带的几种基本模型:
Cube 立方体
Sphere 球体
Capsule 胶囊体
Cylinder 圆柱体
Plane 平面(长款都是十个单位)
unity尺寸单位,约定为1米。
2.物体的移动:
物体的移动、旋转、缩放。
![]()
其中Move Tool移动工具,Rotate Tool旋转工具,Scale Tool缩放工具
移动工具:
沿坐标轴移动。(拖动轴)
在坐标平面内移动。(拖动面)
也可以直接在Inspector来指定坐标,或者Reset重置(坐标全部归0)。

要点:
当物体位置重叠时,最好在Hierarchy窗口选中物体。(即使物体被挡住也是可以操作的)
3.旋转与缩放操作:
1.Rotate Tool 旋转工具:
逆时针为正,顺时针为负。
Inspector->Rotate(旋转角度在这里可以精确指定)。
点击这个在进行操作

按住ctrl默认顺时针转15度。
修改默认角度:
Edit->Grid and Snap Setting...(栅格和吸附的设置),修改Rotate。


2.Scale Tool 缩放工具:
选中一个物体进行缩放。(缩放物体长宽高)
点击这个图标在拉动轴或者直接在Inspector->Scale下进行修改。

4.更多操作:
1.使用快捷键 W、E、R切换:
![]()
2.操作设置,保持默认:
1.Prove 轴心/Center中心点
2.Global 世界坐标系/Local局部坐标系
![]()
3.多选:
ctrl或者shift+点击(点击物体或者是在Hierarchy下选择)
或者是拉框(框柱要多选的物体)
4.复制:
选中物体,ctrl+D 复制物体(复制物体回合原物体重合)
或者在Hier点击要复制的物体,然后右键点击 Duplicate
5.聚焦:
选中物体,按F将物体放置到视野中心
或者双击物体(只能双击Hierarchy才行)
6.激活Active(隐藏物体):
选中物体,在检查器中激活/禁用物体
在Inspector下这个Capsule前面的对钩关了就可以隐藏物体。(在Hierarchy下呈灰色)


(若想要复原,在Hierarchy下点击物体,在点击capsule,出现对钩就激活了)
7.对齐:
对于是初学者直接用正交等视图对齐。
5.对模型的认识
1.网格:
网格Mesh,存储了模型的形状数据。
网格的形状,由若干个小面围合而成。
模型是中空的。
Mesh中包含了面、定点坐标、面的法相等数据。
切换物体材质颜色:
Shaded着色模式,显示表面材质。

点击Scene,切换为Wireframe(线框模式)物体仅显示网格。


点击Scene,切换为Shaded Wireframe(线框着色模式)物体颜色网格都显示。


窗口最大化:

细节与要点
1.物体的表面由三角面构成,Mesh中记录了面和定点。
2.面熟越多,物体表面越精细,CPU负担也越重(高模,面数极多,高精细度的模型)。
2.材质:
材质Material,定义了物体的表面细节·。
颜色,金属/非金属,光滑、粗糙,透明/半透明/不透明,凹起/凸起....。
给物体添加一个材质:
1.添加一个目录 Creat->Folder:

2.添加一个材质Create/Material:
点击Materials,创建一个Material。


给材质起名字:
右键点击然后找到并点击rename(重命名)。


3.给物体指定材质:
点击蓝色材质然后找到Albedo(反照率)。

Albedo,指定表面颜色。
选中物体,将材质拖到物体上:
将蓝色材质长按拖到制定物体上。

更多知识:
选中立方体总共有四个组件。

Cube(Mesh Filter):表示网格数据,它的形状有多少个面,每个面顶点的坐标等...。
Mesh Renderer :负责把模型渲染,把网格的形状显示出来。

注:可以直接把红色材质长按拖到Materials->Element左边的框里可以直接改变颜色。或者是锁定Inspector、拖拽完成或在解锁。

(锁定操作)
3.纹理:
纹理Texture,也称贴图,用一张图定义物体表面的颜色。(每一面每一面的颜色)
在Unity中,为材质添加贴图:
1.准备好图片文件,放到Textures目录:
首先和上面材质中的创建方式一致。
2.添加贴图:
和前面写的一样把图片拖到Albedo这里。



3.删除贴图:
如果想要删除贴图:
![]()
键盘首先点击这个,再按键盘上Backspace,就可以删除了。
细节与要点:
建模师提供的模型,本身已经带了网格、材质、贴图。
Mesh 网格数据(代表着物体的几何形状,点线面)
Material 表面材质 (上色、表面粗糙度)
Texture 表面材质的贴图 (每个位置的颜色)
4.外部模型:
unity支持各种CG建模软件:3Dmax/Maya/Blender...。
标准模型格式:FBX(导出时选用)

1.演示:
1.创建Models目录(把需要的模型和贴图放入):

2.添加模型(.fbx)和贴图文件:

3.观察:
在fbx文件中,包含Mesh和Material:


独立在外的贴图文件:
网格和材质是在一起的,而贴图是独立在外的。

右下角的Preview预览窗口:
这个地方可以调节模型预览。


在Project窗口中,调节显示:
点击这个窗口,就可以出来。(平时是关着的需要点击才可以打开)


使用模型:
要么把模型拖到场景Scene里面,或者拖到Hierarchy下,就会生成这个新物体。

5.更多细节:
在Unity中:
一个平面Plane是没有厚度的,并且正面可见背面透明(或者说背面不会被渲染)。


默认材质:
默认的,物体具有一个材质Default-Material(Unity自带的):

如果没有任何材质,则以紫色显示Default-Material:
如果要删除默认材质,选中Default-Material,按下Backspace,就会显示紫色。



如果想要恢复默认材质,点击这个小按钮,在找到默认材质即可。

6.FBX的使用:
在一个FBX模型文件中,一般包含:
Mesh网格,定义物体形状。
Material材质定义表面的光学特征。
Texture贴图,定义表面的像素颜色。
1.FBX第一种使用方式:
1.演示:
选择*.fbx文件直接拖到Hierarchy(层级窗口)
观察节点图标:
水晶图标是一个亮蓝色的显示


选中节点,观察Inspector中的操作按钮:


首先在Hierarchy下选中物体,然后点击Select,然后就会在资源窗口中会自动显示与水晶相关的FBX图片。

2.贴图:
有的模型需要提贴图文件。
贴图文件的路径是约定好的。
与fbx相同目录,或者同级Textures目录。
其实意思就是FBX文件通常包含网格和材质信息,贴图文件只是和FBX放在同一个文件夹里面。
3.材质:
有的模型定义了多个材质。
在Materials属性中定义了一个数组。


2.FBX第二种使用方式:
材质替换(别人打包好的材质不能替换)
1.演示:
1.材质的重映射Remap:
选中*.fbx资源文件(Inspector下会出现)

在Inspector中切到Materials属性
On Demand Remap:映射新的材质


Apply
然后自已自己重新定义一个材质,移到这个水晶材质右边的框里就可以修改材质,再点击Apply进行应用。
2.或者,使用外部材质:
选中fbx文件

Location:切换成Use External Materials 使用外部材质,再点击apply(上同)。


会发生一个解压缩的操作,他会把fbx里面的材质解压缩到一个目录下边:


然后修改材质就可以了。
3.FBX第三种使用方式:
分解从组
1.演示:
选择fbx中的网格,将网格移到Hierarchy下(此时他的材质是的):




选择fbx中的材质,或者自定义一个材质(直接将材质拖过来)。
如果存在贴图,则使用fbx配套的贴图文件(直接将材质拖过来)。
6.资源
1.资源文件:
Assets目录下的文件,称为资源。
常见类型:
模型文件 Model (*.fbx)
图片文件 Texure (*.jpg/png/psd/tif)
音频文件 AudioClip (*.mp3/wav/aiff)
脚本文件 Script (*.cs)
材质文件 ( *.mat )
场景文件 (*unity)...
Assets目录下的文件,称为资源:
1.常见操作:
1.在Windows文件夹窗口查看:
右键->Show In Explorer

2.添加、删除目录:
右键->Create->Folder(前文讲过,在windows文件夹窗口是完全同步的)
删除就是右键->Delete
3.添加资源文件,文件会被拷贝到项目中:
在已经创建文件的地方右键框柱选中,在拖拽到unity下面Assets下面的文件中。(拷贝)
4.复制资源CTRL + D
缩略图比例调节、列表模式:
在这里拖拽。

5.Meta,描述文件:
在每一个资源文件夹/文件夹,都对一个*.meta描述文件

2.场景文件:
场景文件*.unity,记录了场景中节点的数据:
1.如何打开场景文件:
右键Scenes->windows文件夹窗口查看:

右键->用Edit with Notepad++来打开,就可以查看了。(给软件来看的,了解即可)

包含:
场景全局设置/节点/节点下的组件/每个组件的参数值。
2.几个操作:
一个场景通常来说代表一个关卡:
1.创建场景:
Create->Scene(创建新的场景)

打开场景(双击场景即可)
编辑场景,保存ctrl+S
在入门教程中,只使用一个场景。
3.资源包(写好的东西进行打包):
资源包 Unity Package,即对Assets下的资源打包
1.演示:
1.选择一个资源文件,或者一个目录:

2.右键ExportPackage:

3.点击之后会列出需要打包的文件:
点击export。

4.生成*unitypackage资源包:
导出文件名字,和需要保存的位置,然后点击保存。

4.Unity资源商店:
资源商店Asset Store ,https://assetstore.unity.com/zh-CN
也可以在Unity打开
有一些免费或者收费的资源,包含模型,材质纹理等。
7.轴/节点关系/坐标/中心的介绍
1.轴心:
轴心Pivot,指一个物体的操作基准点。
轴心点就是物体xyz轴的那个交点原点,中轴心点的位置是可以任意指定的(如何指定取决于软件工具)。
对于基准体来说,轴心点默认位于几何体中心。

2.父子关系
1.父子级,指两个物体之间的关系:
在Hierarchy窗口下:
拖动物体B,到物体A下:


子物体会随着父物体一并移动(整体移动)。
删除父物体时,子物体一并删除。
2.相对坐标:
相对坐标:子物体的坐标,是相对于父物体的。
移动父物体时,观察子物体的坐标。
例如:
将这个柱子移到这个盘子上,Rest一下能量柱会回到圆盘中心,能量柱的坐标是(0,0,0)但是他不是在世界中心的位置。




(很显然能量柱不是在世界中心)
3.空物体
空物体EmptyObject,即空对象,空节点。
1.演示:
添加一个空物体:
在层级管理器Hierarchy中右键->Create Empty。

空物体不可见,(没有网格,不选中就什么都没有)
空物体也有坐标,可以移动(需要在Hierarchy中点击)
2.空物体其作用:
用于节点的管理和组织:
比如说两个物体不知道谁用来当父节点,就可以使用空节点(相当于文件夹把这两个东西包括起来)

用于标记一个位置。
轴心只能在建模软件中修改,我们可以使用空物体修改原先的轴心。
要点与细节:
GameObject,其实就是一个节点/容器
一般所谓的“物体”,即是有形状的物体,对应Mesh
4.Global与LOcal的区别
1.Global,即世界坐标系:
Global为默认模式。

以世界中心为轴
6个方向代表:上下东西南北
将小车旋转45度,这时小车只能上下东西南北运动而不能前后左右移动。

2.Local,即为本地坐标系:

以物体自身为轴
6个方向代表:上下前后左右
此时就可以前后左右移动了,而不能朝着东西南北运动。

细节与要点:
Y轴称为up,Z轴称为forward,X轴称为right。
一般的,要求模型的正脸与Z轴方向一致。
5.Pivot与Center的区别:
Pivot 轴心(为默认模式)
Center 几何中心

一般来说物体的轴心并不在几何中心出。
Pivot 轴心:

Center 几何中心:

如果框柱两个物体旋转,Pivot模式下是围绕着各自的轴心点旋转的,在Center模式下是计算出两个物体的几个中心,然后在围绕那个轴旋转。
8.组件其讲解
1.组件:
组件Component,代表一个功能
例如:
Light 光源
Mesh Filter 网格过滤器
Mesh Renderer 网格渲染器...
Light光源
先在Hierarchy点击光源,然后在Inspec下把这个光源的灯关了,就会变暗



Mesh Filter网格过滤器,筛选、组织和呈现数据。

Mesh Renderer关了的话没有东西渲染小车,就会看不到小车。



细节与要点
网格过滤器相当于筛选或整理格子,网格渲染器就相当与给空盒子描绘出图像,只有有网格渲染器才可以可视化。
2.添加和删除组件:
Add component 添加一个组件

Remove Component 删除一个组件

总结:
组件,代表一个功能,需要什么功能,就添加什么组件。
3.Audio Source组件:
Audio Source组件,用于播放音乐/音效。
1.添加一个音乐文件,*.mp3/wav/aiff
先创建一个文件夹,与前面提到的的拖入贴图是一样的。
2.创建一个物体(空物体/物体都可以)

Add Component-> Audio->Audio Source



将音乐文件拖到 AudioSource.AudioClip属性

在3D窗口上方 选Toggle Audio On

4.Transform组件:
Transform,称为变换组件。(基础组件)
物体的基本参数:
Position 位置(有父物体就是相对坐标没有则是世界坐标)
Rotation 旋转(欧拉角0-360)
Scale 放缩
Transform组件及其特点:
所有组件都有Transform且不能被删除。
5.摄像机:
摄像机 Camera,负责拍摄游戏画面
演示:
1.调整窗口布局,Scene/Game并排显示(并排显示)

(窗口都可以拖动,可以自己去自定义布局)
2.选中摄像机,观察镜头范围

3.摄像机的Z轴指向,即为拍摄方向

4.拍到的画面,呈现在Game(玩家所看到的窗口)窗口中

Game窗口中的画面,即为玩家最终所见画面
调整摄像机的角度两种方法:
1.手动移动、旋转摄像机,对准目标。
2.Align with View,与3D视图对齐。
现在3D视图里摆好角度,此为观察者视角。
然后选中Main Camera,执行Align with View:


现在Scene与Game窗口一致。
9.用脚本实现物体运动
1.脚本(需要学过C#或者java):
脚本Script,用于驱动游戏逻辑。
1.创建Script文件夹
首先创建一个Script脚本文件夹,然后再Create->C#Script(命名不能使用标点符号和空格最好不使用中文)

2.双击用文件夹用vs打开
(类名和文件名必须一致)


3.挂载脚本(两种办法):
1.点Add Component,选Scripts|SimpleLogic

![]()

2.或者直接将脚本拖到Inspectou窗口最下方

3.运行游戏
点paly按钮,运行游戏:
![]()
在Console窗口中,观察输出:

若Console窗口未显示,则Window|General|Console调出窗口

细节与要点:
1.C#文件名必须和类型名一致,否则无法挂载。
(若要修改类名应该在VS中右键重命名)
2.脚本必须挂到物体上,才会被调用。
2.当前物体
在SimpleLogic中,获取当前物体
1.this 当前脚本组件

2.this.gameObject 当前物体的名字

String name=obj.name;
String是一个字符串类型(存储字多个字符)。
this.gameObject相当于就是这个物体。
(obj现在是GameObject类型,用name方法拿出名字,在赋给name)
Debug.log(" ");是输出语句
3.this.game.Object.transform
当前物体下的Transform组件
为了简化也可写成this.transform,效果相同

Transform是一个组件类型。
this.gameObject相当于就是这个物体。
this.gameObject.transform相当于是这个物体的组件。
(第一句话的意思就是把这个物体的组件赋给tr)
Vector是一个三位空间中向量通常包含三个浮点数(X,Y,Z)
this.gameObject.transform.position相当与这个组件的位置拿出来赋值给pos这个变量。
Debug.log(" ");是输出语句,里面的pos.ToString("F3")意思是将这个拿到的数字保留三位来输出。
细节与要点:
API中大部分模型来源于UnityEngine
![]()
基类 MonoBehaviour
游戏物体 GameObject
变换组件 Transform
三维向量 Vector3
3.物体的坐标
1.物体坐标:
transform.position = gameObject.transform.position 世界坐标
transform.localPosition 本地坐标
一般常用的是localPosition,与Inspector中的值一致
Vector3类型:
即三维向量,含x y z三个分量(float单精度)
2.设置物体坐标:
this.transform.localPosition=new Vector3(0,0,0);
new Vector3(1.5f,0,2.0f)这个意思是创建一个三维向量。
![]()
此时物体若不在(0,0,0)位置则移动到(0,0,0)位置。
细节与要点:
1.其中float(小数)类型数值,在书写时应该加一个f
2.注意transform.position这个p是小写
transform.localPosition这个P是大写
4.播放模式:
Edit Mode 编辑播放
Play Mode 播放/运行 模式(在运行时候修改不会保存)
![]()
在播放模式下:
实时显示 场景中的物体和属性
游戏中的状态不可被保存
会提示:You must exit play mode to save the sence!

10.物体的帧和移动物体
1.帧跟新:
Frame 一个游戏帧
FrameRate 帧率/刷新率
FPS(Frames Per Sencond) 每秒更新多少帧(FPS低就会一卡一卡的)
Update(),称为帧跟新
此方法会被游戏引擎定时调用,以更新游戏的状态
演示:在Update()中添加日志输出,在Console中观察。


(每次编辑Update文本都会有一个Reload加载对话框)


(Start被调用一次,其余都是调用Update,一秒中调用的次数很多)
帧率观察时间:
Time.time (游戏时间)(从游戏启动开始计时,经过了多少时间)


Time.deltaTime (距离上次跟新的时间差)(这一次距上一次)


显然,帧率是固定不变的,Unity会尽快地更新。
Unity不支持固定帧率,但是可以设定一个近似的帧率:
Application.targetFrameRate=60;
Unity尽量以FPS=60的帧率更新游戏


2.移动物体:
1.在Update()中,移动物体的位置:
例如:
Vector3 pos=this.transform.localPosition;
pos.x+=0.01f;
this.transform.localPosition=pos;

运行游戏,物体沿X轴正向移动
物体的运动并不是匀速的。
每次运动0.01米,但是间隔的daltaTime不固定
例如:
第一次 daltaTime=0.016S 运动0.01M
第二次 daltaTime=0.030S 运动0.01M
2.匀速运动:
使用·deltaTime,让物体的匀速运动
例如:
float speed=3;//以米为单位(一个格子)
float distance=speed*TimedeltaTime;//经过多长时间乘以他的速度就是他要移动的距离

11.物体的朝向移动
1.物体的运动:
布置测试场景:

添加物体:

添加脚本控制小车:
一般使用transform.Translate(dx,dy,dz,...)
其中,dx,dy,dz是坐标增量
例如
transform.Trsnslate(0,0,distance);//Z方向增加distance
2.相对运动:
transform.Trsnslate();//可以实现物体的运动
transform.Trsnslate(dx,dy,dz,space);
其中,第四个参数:
Space.World 相当于世界坐标系
Space.Self 相当于自身坐标(本地坐标系)

(只会沿着世界坐标系东南西北不能沿着自己面朝着的方向)
![]()
(会沿着前后左右运动)
细节与要点:
建模时,要求物体的脸的朝向与物体+z轴方向一致。
3.运动方向:
运动的方向,使物体朝着目标方向运动。
1.取得目标物体的地址:
GameObject flag=GameObject.find("红旗");//红旗是目标物体的名字
2.转向目标:
this.transformLookAt(flag.tramsform);//LookAt朝哪个方向看,flag.transformchuanjinlai
3.向‘前’运动,foeward+Z方向:
this.transform.Translat(0,0,dz,Space.Self);

细节与要点:
1.GameObject.Find(name_or_path) 根据名字/路径来查找物体
2.transform.LookAt(target) 使物体的Z轴指向物体。
3.Space.self 延物体自身坐标系的轴向运动。
4.LookAt会使Z轴指向物体,若目标在空中,也会往空中走
是小车到达物体后停下来:


(用一个if语句判断距离)
p.magnitude 通常用于计算向量或点的模。
让场景跟着小车移动:

12.旋转
1.物体的旋转:
给物体调转一个旋转角度。
1.Quaternion四元组(x,y,z,w)
transform.rotation=....;//不建议使用
2.欧拉角Euler Angle
transform.eulerAngles=new Vector3(0,45,0);
transform.localEulerAngles=new Vector3(0,45,0);//本地坐标

要点与细节:
设置旋转角度时,一般使用localEulerAngles而不是rotation。
2.相对旋转:
Roate(),旋转一个相对角度
transform.Rotate(dx,dy,dz,space);
相当于:
Vector3 angles=transform.localEulerAngles;
angles+=new Vector(dx,dy,dz);
transform.localEulerAngles=angles;

3.自转与公转:
自转 绕着自身轴旋转
公转 围绕另外一个物体旋转
当父物体旋转时,带动子物体一并旋转。

设置一个空物体a1,把空物体的中心点和地球的中心点重合就可以了。
4.官方文档:
可以在这里查看没有见过的类。
更多推荐



所有评论(0)