@[TOC]Unity简介与Unity脚本
一.Unity简介
1.Unity界面
Shift + Space : 放大界面
Scene界面按钮渲染模式2D/3D光源声音各种显示开关场景中元素图标的显示开关(Gizmos)搜索框界面操作缩放旋转移动QWERTY快捷键Game
最终给玩家看到的界面,由场景中的摄像机拍摄到的画面界面按钮Display 通道分辨率缩放Scale:将摄像机拍摄到的画面缩放播放时最大化静音状态信息面板开关场景中元素图标的显示开关(Gizmos)Hierarchy(层级面板)
能够看到场景中所有的层级对象,与其层级关系新建搜索Project (项目面板)一列展示 / 两列展示与硬盘中的/Project/Assets文件夹同步Inspector(属性面板)作用选中游戏对象后,在面板看到物体身上的组件看到一个资源文件的属性Console(控制台面板)按钮Clear:清空Collapse:合并重复项Clear on Play:运行时清空上一次的日志ErrorPause:当程序遇到错误(异常)时暂停AssetStore(资源商店)修改语言价格以美元做单位
2.坐标系
世界坐标系
“东西南北”物体坐标系
“前后左右”中心点 Pivot/Center 快捷键Z坐标系 Global/Local 快捷键X
3.材质球(Materia)
想要修改一个游戏对象的外观,需要使用材质球
4.资源包(Asset package)
*路径和名字不要有中文
导入 Import导出 Export标准资源包 Standard Assets天空盒使用的两种方式Window -> Lighting -> Settings给摄像机加组件Skybox
5.预设体(Prefab)
设置SelectRevertApply
6.地形系统
上升/下降地形
最低高度为0恒高地形平滑地形绘制地面纹理绘制树木可以添加多种树笔刷大小树木密度锁定宽高比删除按住shift:删除范围内全部按住ctrl:删除范围内选择的树木绘制草坪删除
同删除树木设置长宽高
7.向量
标量
只有大小没有方向基本运算向量的加减加法:将两个向量首尾相连,和等于第一个向量的头到第二个向量的尾这个向量减法:等于被减数的终点到减数的终点这个向量向量的点乘向量的叉乘向量的几何含义
8.2D项目与3D项目
2D与3D项目区别
2D没有天空盒2D没有默认光源摄像机的成像模式2D是正交视图,3D是透视图
将动画中的所有Sprite帧选中,拖到Hierarchy中就自动生成了一个精灵动画
组件
TransformSprite Renderer:精灵图渲染器Sprite:素材图片Color:颜色Flip:翻转FlipX:水平翻转FlipY:垂直翻转Material:材质Sorting Layer:在哪个层排序Order In Layer:决定谁在屏幕前,数字越大越靠前Collider2DRigidbody2DPhysicsMaterial2DEdit -> Project Settings -> Physics2DSettings 修改默认物理材质
二.Unity脚本
脚本在创建后名称不能被修改脚本可以当做一个组件来使用脚本是一个类,继承自MonoBehaviour脚本文件的名称和类名一定要保持一致,否则会不能将脚本挂在GameObject上继承关系:GameObject -> Component -> Behaviour -> MonoBehaviour -> Scripts此GameObject不是彼Object,是UnityEngine定义的GameObjectRuntime/Editor 脚本Runtime脚本,执行随着游戏运行时进行而运行Editor脚本,执行在游戏运行前
Unity脚本的生命周期
Unity中什么都是对象脚本的声明周期:一个脚本对象从最开始执行到最后销毁的全部过程Unity中的打印Debug.Log(“Message”);print(“Message”); //不是脚本不能用此方法脚本前的对勾:脚本是否激活。依赖于Start()和OnEnable()生命周期void Awake():游戏开始后第一个调用的回调函数。无论脚本是否激活,始终都执行。如果游戏对象未激活,他身上所有的组件是不会触发的void Start():游戏开始后第一帧执行的回调函数,只会执行一次void OnEnable():当脚本激活的时候触发一次,可以重复触发void OnDisable():当脚本取消激活的时候触发一次,可以重复触发void OnDestroy():当脚本被销毁前触发。脚本被移除或者游戏对象被销毁触发。游戏对象在销毁前会移除身上所有的组件,所以就是脚本被移除的时候触发void Update():每帧触发一次void LateUpdate():每帧触发一次,晚于Update()void FixedUpdate():每隔固定的时间间隔触发一次,时间间隔默认0.02s,在Edit->Project Settings->Time中修改void OnGUI()(基本不用了):每帧触发两次graph LR Awake–>OnEnable OnEnable–>Start OnDisable–>OnDestroy Start–>Update Update–>LateUpdate LateUpdate–>Update LateUpdate–>OnDisable Start–>FixedUpdate FixedUpdate–>FixedUpdate FixedUpdate–>OnDisable 先挂的脚本后执行,后挂的脚本先执行。执行顺序可以在Inspector->Execution Order中设置,Default Time数值越小的先执行