一.初始开发工具
Scence:编辑场景,列出场景中的所有对象。
Game:玩家看到的面板,由场景中的摄像机拍摄到的
Project:项目面板,管理一个项目中的所有资源文件,Project面板和项目文件夹中的Assets文件夹完全相通
Hierarchy:层级面板,用来管理场景中所有的游戏对象(GameObject),将所有对象已层级的形式显示
Inspector:检视面板,显示一个游戏对象上的组件和属性
二.unity组件
Mesh Filter网格过滤器,决定了游戏对象的形状
三.Material 材质的使用
自定义材质。详见api文档
四.地形Terrain的使用
1.上升地形
Bursh 笔刷样式
Bursh size 笔刷大小
Opcity 笔刷硬度
按住shift可以下降地形,最低能够下降到0
2.恒高地形
3.平滑地形
4.绘制地面纹理
五.PhysicMaterial物理材质(弹跳摩擦)
bounceCombine | 明确弹力如何组合。 |
bounciness | 表面是多么有弹性的?值为0将不会有弹性。值为1将是没有任何能量损耗的弹力。 |
dynamicFriction | 已经移动时摩擦力被使用。该值在0到1之间。 |
frictionCombine | 明确摩擦力如何结合。 |
staticFriction | 当对象横卧在表面时,摩擦力系数被使用。 |
六.坐标系的使用
世界坐标系
局部坐标系
相机坐标系Viewport
屏幕坐标系
unity采用左手坐标系
x轴向右 y轴向上 z轴向里
---------------------获取水平轴--------------------
float horizontal = Input.GetAixs("Horizontal")
---------------------获取垂直轴--------------------
float vertical = Input.GetAxis("Vertical");
-------------------获取自己的坐标---------------------
transform.position
--------------------vector3三维向量---------------------
back | 写Vector3(0, 0, -1)的简码。 |
down | 写Vector3(0, -1, 0)的简码。 |
left | 写Vector3(-1, 0, 0)的简码。 |
one | 写Vector3(1, 1, 1)的简码。 |
right | 写Vector3(1, 0, 0)的简码,也就是向x轴。 |
up | 写Vector3(0, 1, 0)的简码,也就是向y轴 |
forward | 写Vector3(0, 0, 1)的简码,也就是向z轴。 |
zero | 写Vector3(0, 0, 0)的简码。 |
//创建一个坐标
Vector3 position = new Vector3(x , y , z);
------------------------旋转------------------------
//局部旋转
transform.localRotation
//变换角度
transform.Rotation
Quaternion.LookRotation(一个参数,表示旋转的x,y,z坐标)
//需要变换多少角度,根据坐标变化角度
transform.Rotation = Quaternion.LookRotation(new Vector3(1f,0f,0.3f));
-----------------------往前平移--------------------------
transform.Translate (一个参数,表示移动多少距离)
transform.Translate(Vector3.forward * speed * Time.deltaTime);
transform.Translate (一个参数,表示移动多少距离,第二个参数表示根据世界坐标来)
transform.Translate(Vector3.forward * speed * Time.deltaTime,Space.World);
七.接收用户的输入(Input)
鼠标输入:
input.getButton("Fire1");
input.getButtonDown(0);//表示鼠标左键
input.getButtonUp(1);//1表示鼠标右键
键盘输入:
input.getKey();//默认
input.getKeyDown();//按下触发
input.getKeyUp();//等鼠标抬起触发
八.MonoBehaviour 的基本方法
Awake:顾名思义,Unity3D的脚本苏醒时需要调用的方法,这个方法比Start方法执行的还要早,也是执行一次。
Start:可以理解为类的构造函数,或者是init函数,用于初始化各种变量,仅执行一次。
Update:类似于flash AS3 onframe的回调函数,每帧均回调。
Fixedupdate:每一帧都执行,处理Rigidbody时,需要用FixedUpdate代替Update。例如:给刚体加一个作用力时,你必须应用作用力在FixedUpdate里的固定帧,而不是Update中的帧。(两者帧长不同)FixedUpdate,每固定帧绘制时执行一次,和update不同的是FixedUpdate是渲染帧执行,如果你的渲染效率低下的时候FixedUpdate调用次数就会跟着下降。FixedUpdate比较适用于物理引擎的计算,因为是跟每帧渲染有关。Update就比较适合做控制。
Lateupdate:每帧均回调,但每次均在Update之后再调用。
OnGUI:每帧均回调,用于绘制GUI对象。
Reset:用户点击检视面板的Reset按钮或者首次添加该组件时被调用。此函数只在编辑模式下被调用。Reset最常用于在检视面板中给定一个最常用的默认值。
OnDisable:当物体被销毁时 OnDisable将被调用,并且可用于任意清理代码。脚本被卸载时,OnDisable将被调用,OnEnable在脚本被载入后调用。注意: OnDisable不能用于协同程序。
OnDestory:当MonoBehaviour将被销毁时,这个函数被调用。OnDestroy只会在预先已经被激活的游戏物体上被调用。注意:OnDestroy也不能用于协同程序。