刚开始
创建一个正方体
窗口布局
恢复默认窗口
场景
默认场景中只有一个主摄像机和平行光源
3D物体
- Duplicate 复制
- Delete 删除
3D视图
- 导航器 Gizmo,表示世界坐标的方向
- 栅格 Grid,表示XZ坐标平面
- 天空盒 Skybox , 表示游戏世界的背景
视角中心
出生点:添加一个新物体,物体位于视图中心
想绕着一个物体旋转,按下F键
透视与正交
正交视图,又称为等距视图,物体显示与距离无关
对齐用的
有些角度看球体就像椭圆一样,这种现象叫透视畸变,改变相机广角可以减少
3D物体
- Cube 正方体
- Sphere 球体
- Capsule 胶囊体
- Cylinder 圆柱体
- Plane 平面
Unity尺寸单位 约定是1米
按下ctrl旋转的时候,一个增量是15°
快捷键w、E、R切换
操作
ctrl + D 复制物体
激活或禁用物体
AF小插件
AF扩展插件,AfSimpleExtension.cs
网格
网格Mesh 储存了模型的形状
材质
- 颜色
- 金属、非金属
- 光滑、粗糙
- 透明、半透明、不透明
- 凹陷、凸起
创建材质
右键->create->Material
纹理
所有平面都是正面可见背面透明的
FBX使用
- Mesh网格,定义物品形状
- Material材质,定义表面的光学特性
- Texture贴图,定义表面的像素颜色
** 跳转到模型文件**
贴图文件
- 有的模型需要贴图文件
- 贴图文件的路径是约定好的
- 与fbx相同目录,或者同级Textures目录
材质
- 有的模型定义了多个材质
- 在Materials属性中定义了一个数组
重映射
材质替换
资源文件
常见类型
- 模型文件 Model(*.fbx)
- 图片文件Texture(*.jpg/png/psd/tif)
- 音频文件AudioClip(*.mp3/wav/aiff)
- 脚本文件Script(*.cs)
- 材质文件*.map,场景文件*.unity …
- 描述文件 *.meta
在文件夹窗口查看 Show in Explorer
复制资源ctrl + D
场景
一个场景代表一个关卡,可以创建多个场景
包含
- 场景全局设置
- 节点
- 节点下的组件
- 每个组件的参数
资源包
资源包Unity Package,即对Assets下的资源打包
演示:
- 选择一个资源文件,或者一个目录
- 右键,Export Package…
- 生成*.unitypackage资源包
unity资源商店
父子节点
空节点
Global 与 Local
- Global 即世界坐标系
- Local,即本地坐标系
y轴成为up,z轴称为forward,x轴称为right
Pivot 与 Center
pivot 轴心模式
Center几何中心点
组件
组件Component,代表一个功能
例如:
- Light,光源
- Mesh Filter,网格过滤器
- Mesh Renderer,网格渲染器
AudioSource组件
AudioSource组件,用于播放音乐、音效
- 添加一个音乐文件,*.mp3/wav/aiff
- 创建一个物体
- ADD Component,Audio|Audio Source
- 将音乐文件拖到AudioSource.AudioClip属性
- 在3D窗口上方,选Toggle Audio On
相机
摄像机 Camera负责拍摄游戏画面
- 调整窗口布局,Scence/Game并排显示
- 选中摄像机,观察镜头范围
- 摄像机Z轴指向,即为拍摄方向
- 拍到的画面,呈现在Game窗口中
将摄像机到观察者视角 Align with View
脚本
脚本 Script,用于驱动游戏逻辑
在SimpleLogic.cs中获取当前物体
- this , 当前物体
- this.gameObject , 当前物体
- this.gameObject.name,当前物体名字
- this.gameObject.transform,当前物体下的Transform组件,为了简化书写,也可以写作this.transfrom 。
获取坐标脚本
void Start()
{
GameObject obj = this.gameObject;
string objname=obj.name;
Debug.Log(objname+"名字");
Transform tr=this.gameObject.transform;
Vector3 pos=this.gameObject.transform.position;
Debug.Log("坐标"+pos.ToString("F3"));
}
物体坐标
- transform.position,世界坐标
- transform.localPosition,本地坐标
为了简化写法 this.transform.position
设置物体坐标
this.transform.localPosition=new Vector3(1.5f,0,2.0f);
其中f是float型的数值,书写以f结尾
播放模式
- Edit Mode编辑模式
- Play Mode,播放/运行/ 模式
帧更新
Frame,一个游戏帧
FrameRate,帧率
FPS
帧率观察
- Time.time,游戏时间
- Time.deltaTime,据上次更新的时间差
设置一个近似帧率
Application.targetFrameRate=60;
尽量设置一个60帧运行
移动
void Update()
{
Vector3 vector3=this.transform.localPosition;
vector3.x+=0.01f;
this.transform.localPosition=vector3;
}
匀速运动
deltaTime,让物体匀速运动
float speed=3;
float distance= speed*Time.deltaTime;
Vector3 vector3=this.transform.localPosition;
vector3.x+=distance;
this.transform.localPosition=vector3;
相对移动
- transform.Translate(),可以实现物体的运动
- transform.Translate(dx,dy,dz,space)
其中第四个参数:
- Space.World相对于世界坐标系
- Space.Self相对于自身坐标系
1获取目标物体
GameObject flag=GameObject.Find(“红旗”);
2转向目标
this.transform.LookAt(flag.transform);
3向前运动
this.transform.Translate(0,0,dz,Space.Self)
粒子效果
粒子的颜色、大小、旋转、速度、受力、噪音、拖尾、碰撞、灯光等
粒子系统 Particle System
添加一个粒子效果 Effects|Particle System
去掉黄色小框演示
22个字模块,默认启动Emission/Shape/Render三个模块(发射频率,粒子发生器的形状,粒子显示)
以后可能用到的size over lifetime(启用更多粒子)
- start color,粒子初始颜色
- start speed,粒子初始速度
- start size,粒子初始大小
广告牌
广告牌 Billboard
修改材质,过滤黑色为透明材质
黑底图片这样去边框
随机区间
- 固定值Constant
- 区间随机值 Random between two constans
周期与时长
- Duration,周期,粒子系统的工作时长
- Looping,循环
- Prewarm,预热,粒子系统是否先内部预热一周
- Start Lifetime,粒子的生命时长(存在时间),默认5秒
模拟空间
- local,本地
- world,世界
匀速发射
**Emission 发射模块 **
匀速发射
- Rate over Time
- Rate over Distance
爆发式发射 - Bursts
匀速发射有两种方式:
1.Rate over Time
每1秒发射N个
2.Rate over Distance
每前进1米发射N个。针对运动的物体
爆发式发射
粒子发射器的形状
Shape模块
颜色渐变模块
Shaper
1.基本结构
Shader "Custom/study"
{
Properties{
//属性
const float e = 2.7182818284590452353602874713527;
}
//SubShader可以写多个
SubShader{
}
//后备方案
Falback"VertexLit"
}
UGUI学习
六大组件
Canvas 画布组件,主要用于渲染UI组件
Canvas Scaler 画布分辨率自适应组件,主要用于分辨率自适应
Graphic Raycaster 射线事件交互组件,主要用于控制射线响应相关
RectTransform ui对象位置锚点组件,主要用于控制位置和对其方式
EventSystem对象上依附的:
EventSystem
Standalone Input Module
Pixel Perfect :是否开启无锯齿精确渲染(性能换效果)
RenderCamera:用于渲染UI的摄像机
Plane Distannce: UI屏幕在摄像机前方的距离
CanvasScaler
CanvasScaler 画布缩放控制器 ,负责不同分辨率下UI控件大小自适应。
调整分辨率
Constant Pixel size(恒定像素模式):无论屏幕大小如何,UI始终保持相同像素大小
Scale With Screen Size(缩放模式):根据屏幕尺寸进行缩放,随着屏幕尺寸放大缩小
Constant Physical Size(恒定物理模式):无论屏幕大小和分辨率如何,UI元素始终保持相同物理大小
Match Width Or Height 宽高匹配模式
竖屏游戏: Match=0
横屏游戏:Match=1
DPI:图像每英寸长度内的像素点数
Graphic Raycaster图形射线投射器
Event System 事件系统
Standalone Input Module 独立输入模块
RectTransform 用于处理ui元素位置大小的组件
快捷修改锚点和轴心点(按shift键)
Raycast Target 射线检测,取消就无法点击
编辑图片
导入Sprite 包
RawImage 背景图网络加载图等
Button
得到所有Toggle【】,可以用来获取选中状况