一个游戏由多个场景Scene(2D/3D)组成
一个场景由多个游戏对象组成
一个游戏对象由多个组件组成
旋转相关操作
1、旋转视图:ALT+LMB(Left Mouse Button)[左键]
2、缩放试图 鼠标滚轮 、alt+RMB 精细缩放 [右键]
3、平移视图 MMB 鼠标中键
导航器相关操作
按Shift 点击中间的小方块,恢复方向
点Y轴,顶视图
点Y轴,右视图
点Z轴,前视图
框显所选
选中一个物体, 按F键 置于视图中 ,此时旋转视图,似是绕着物体旋转
视野中心
出生点:添加一个新事物,物体位于视图中心 注意:出生点不是在(0,0,0),而是在当前视图中心
F键是一个常见操作,先把鼠标放在3D试图内,再按F键
透视与正交
透视视图Perspective,近大远小
正交试图Orthographic,又称等距视图Isometric
透视图下,物体‘近大远小’,正交试图下,物体的显示与距离无关
正交视图常用于物体的布局、对齐操作;分为 正交顶视图、正交右(侧)视图、正交前视图
透视、广角设定
摄像机的广角Field 默认为60度
广角越大,透视畸变太厉害,可以设为30-40度
Unity自带的基本模型
Cube 立方体
Sphere 球体
Capsule 胶囊体
Cylinder 圆柱体
Plane 平面
Rotate Tool旋转工具 演示:选中一个物件,绕Z轴旋转
其中:逆时针为正,顺时针未负;可以在Inspector里面精确指定;按住Ctrl键时,角度增量为15度
Edit | Grid and Snap Settings 栅格吸附设置
快捷键 W E R 切换
多选 ctrl/shift
克隆复制 Ctrl+D
AF扩展插件 AfSimpleExtension.cs
获取物体的尺寸;置于视图中心,G键; 切换到正交顶视图,1键
Mesh 网格数据 ,Material 表面材质,表面材质贴图 Texture
Global 与 Local的区别
Global:世界坐标系,以世界中心为轴 6个方向代表:上下 东西 南北
Local :本地坐标系,以物体自身为轴 6个方向代表:上下 前后 左右
Y轴称为Up、 Z轴称为Forward、X轴称为Right 正常情况,要求模型的正脸与Z轴方向一致
Pivot与Center区别
Pivot 轴心
Center 几何中心
物体的轴心并不在几何中心处
组件 Component 代表一个功能
Light 光源
Mesh Filter 网格过滤器
Mesh Renderer 网格渲染器
Mesh Filter和 Mesh Renderer 组合使用
AudiSource 用于播放音乐、音效
添加一个音乐文件 .mp3/wav/aiff
创建一个物件 Add Component,Audio/Audio Source
将音乐文件拖到AudioSource.AudioClip 属性
在3D窗口上方,选择Toggle Audio On
Transform 变换组件
position 位置 相对坐标
Rotation 旋转 欧拉角(0~360)
Scale 缩放
特点:所有物体都有、不能删除
摄像机 Camera 负责拍摄游戏动画
调整窗口布局 Scene/Game并排显示
选中摄像机,观察镜头范围
摄像机的Z轴指向 即为拍摄方向
拍摄的画面 呈现在Game窗口中 Game窗口的画面即为玩家最终所见画面
调整摄像机的角度
1、手工移动、旋转摄像机,对准目标
2、Align With View 与3D 试图对齐
先在3D试图里摆好角度,此为观察者角度
然后选中Main Camera 执行Align with View
此时 摄像机视角与观察者视角完全相同
挂载脚本 两种方法 1、点击Add Component 选择Scripts|Simple Logic 2、直接将脚本拖到Inspector窗口下面
API中大部分类型来源于 UnityEngine
基类 MonoBehaviour 、游戏物体 GameObject、变换组件 Transform
Transform.position 世界坐标
Transform.localPosition 本地坐标
this.gameObject.transform.position
this.transform.position
this.transform 指向的this.gameObject.transform
Frame 一个游戏帧、FrameRate 帧率/刷新率
FPS Frames Per Sencond 每秒更新多少帧
帧率观察 Time.time 游戏时间、Time.deltaTime 距上次个更新的时间差 帧率是不固定的,Unity会尽量较快的更新
移动物体
在Update()中,移动物体的位置
Vector3 pos=this.transform.localPosition;
pos.x+=0.01f;
this.transform.localPosition=pos;
运行游戏,则物体沿X轴正向移动
float speed=3; //速度
float distance=speed*Time.deltaTime; //速度*时间=路长
Vector3 pos=this.transform.localPosition;
pos.x+=distance;//0.01f;
this.transform.localPosition=pos;
transform.Translate(dx,dy,dz) 实现相对运动 dx,dy,dz坐标的增量
参考: