初步了解了下unity,unity的使用,以及场景的布局,UI,以及用C#做一些简单的逻辑。好记性不如烂笔头,一些关键帧还是记起来比较好,哈哈,不然可能转瞬即逝了。
一:MonoBehaviour类的初始化
1, Instantiate()创建GameObject
2, 通过Awake()和Start()来做初始化
3, Update、LateUpdate,和FixedUpdate来更新逻辑
4, 用OnGUI绘制UI
5, OnCollisonEnter等进行物理运算
6, OnPreCall等来控制渲染
二:导航网格的设置
1. 设置导航网格
2. 设置Nav Mesh Agent
3. 调用Nav Mesh Agent的方法路径
三:如何更新逻辑
1. 场景启动时调用所有脚本的Awake()
2. 调用所有脚本的start()
3. 调用Update(每一帧调用一次Update())
4. 调用LateUpdate(所有的update调用完之后再调用LateUpdate)
5. 调用FixedUpdate
PS:update跟当前平台的帧数有关,而FixedUpdate是真实时间,所以处理物理逻辑的时候要把代码放在FixedUpdate而不是Update。
Update是在每次渲染新的一帧的时候才会调用,ixedUpdate是在固定的时间间隔执行,不受游戏帧率的影响。
FixedUpdate的时间间隔可以在项目设置中更改,点击 Edit - Project Setting - time找到 Fixed timestep,就可以修改了。
四:脚本间的通讯
1. GetComponment可以找到同一个物体上面挂着的其他的脚本。
2. GameObject.Find来找到其他物体。
3. SendMessage来
4,有一个串口通信类 SerialPortReciever。
脚本之间的通信有几种:
1.利用在脚本A中定义对外接口函数,然后在脚本B中找到A所在的对象,再找到脚本A,进而调用里面的对外接口函数,这个方法在我的《unity3D NGUI中button响应事件实现》这篇文章中有仔细说明,可以参考。
2.还有一个是利用SendMessage的方法来实现脚本互相通信。
也是,首先在A脚本中编写对外接口函数,如下所示:
using UnityEngine;
using System.Collections;
public class A : MonoBehaviour {
public void Show_nunber(int n)
{
print("num: " + n );
}
}
然后在脚本B中利用SendMessage机制调用脚本A里面的Show_number函数。
如下:
using UnityEngine;
using System.Collections;
public class B : MonoBehaviour {
public GameObject Obj;//A脚本绑定在一个物体上的时候,再把脚本B拖拽到这个GameObject
void Start ()
{
Obj.SendMessage("Show_number","10");//相当于调用脚本B里面的函数,第一个参数是函数名,第二个传递的整型参数
}
}
五:部分方法笔记
1,Desotry来销毁一个GameObject
2,Collider碰撞
3,Rigidbod控制物体移动
4,Resume()运行
5,profabs 模板
更多关于“unity培训”的问题,欢迎咨询千锋教育在线名师。千锋教育多年办学,课程大纲紧跟企业需求,更科学更严谨,每年培养泛IT人才近2万人。不论你是零基础还是想提升,都可以找到适合的班型,千锋教育随时欢迎你来试听。