Unity API常用方法和类详细讲解-读书笔记(一)

课时1 课程前言、学习方法(常用的API)

1. 什么是事件函数?
start函数(只执行一次);
update函数(一帧执行一次);
事件执行顺序(Execution Order Of Event Functions)
2. 事件函数执行的次序和先后顺序
Reset
Aweak
OnEnable(OnDisEnable)
FixedUpdate(每帧可能会调用多次,具有物理属性的)
Update和LateUpdate(每帧调用一次,与硬件设备相关联)

触发触发器(OnTriggerXXX)
OnTriggerEnter 进入
OnTriggerStart 进行中
OnTriggerQuit 结束
触发碰撞器(OnCollisionXXX)
OnCollisionEnter 进入
OnCollisionStart 进行中
OnCollisionQuit 结束

3. Time类中静态变量的介绍
<1> captureFramerate(减慢游戏回放时间,以便在帧间保存屏幕截图)
<2> deltaTime(当前帧所占用的时间,每一帧所占用的时间大概在1/60左右,常用的)
控制cube向前移动:

public GameObject cube;

void Upate()
{
	cube.Translate(Vector3.forward);	// 1秒运行50次,每次运行1米
	cube.Translate(Vector3.forward*Time.deltaTime); //Time.deltaTime == 0.02秒

	Time.timeScale = 0; // 停止 与Time.deltaTime有关,可以做物体的停止或者慢运动
}

<3> fixedDeltaTime
<4> fixedTime(从游戏开始到现在所执行的时间)
<5> realTimeSinceStartup(做性能测试)

4. GameObject
创建对象的方法
<1> 通过代码进行创建对象

new GameObject("Cube");

<2> CreatePrimitive
使用基本网格渲染器和适当的碰撞器创建游戏对象

GameObject.CreatePrimitive(Primitive.Plane);
GameObject.CreatePrimitive(Primitive.Cube);

<3> Instantiate(根据Prefab实例化对象或者另外一个游戏物体)

GameObject.Instantiate(prefab);//克隆原始对象并返回克隆

<4> AddComponent和访问GameObject的属性

GameObject go = GameObject.CreatePrimitive(Primitive.Cube)
go.AddComponent<Rigidbody>();// 可以添加已有的组件,也可添加自定义的组件

activeInHierarchy;// 定义游戏物体是否处于激活状态(父未激活子就未激活)
activeSelf;// 游戏对象的本地活动状态(自身是否激活)
tag;// 游戏对象的标签
<5> 销毁对象
Destroy// 先将游戏物体放置到垃圾池,然后统一进行销毁
DestroyImmediate;// 立刻进行销毁,不建议使用
DontDestroyOnLoad;
FindObjectOfType;// 返回一个查找的对象
例如:

Light light =  FindObjectOfType<Light>();
light.enable = false;// 禁用

FindObjectsOfType;// 返回查找对象的列表(不查找未激活的物体)
Instantiate;克隆原始对象并返回
<6> SetActive
激活或者未激活游戏物体

课时2 GameObject、Component及Object之间的关系

1. GameObject、Component之间的关系
一个游戏可以由多个场景构成;
一个场景可以由多个游戏物体组成;
多个组件构成一个游戏物体;

扫描二维码关注公众号,回复: 4975356 查看本文章

C#的基类是System.Object,UnityEngine.Object是U3D游戏引擎的基类,该基类下又包含GameObject和Component两个子类。

UnityEngine.Object有name可供GameObject和Component进行访问,访问的name都是一样的。
例如:

Public GameObject go;
go.name ;	// 通过游戏物体访问名字
go.GetComponent<Transform>().name;	// 通过游戏对象中组件的name是一样的。

2. GameObject独有的静态方法
CreatePrimitive
Find; // 通过游戏对象的name对所有的对象进行查找,耗费性能
FindWithTag // 返回一个活动的游戏对象标签。如果没有找到GameObject(游戏物体),返回null
FindGameObjectWithTag // 返回带有标签的活动游戏对象列表。如果没有找到GameObject(游戏物体),返回空数组。

3. 游戏物体间消息的发送和接收
发送消息:
BroadcastMessage;//以广播的形式发送
SendMessage;
SendMessageUpwards;
接受消息:
GetComponent;
GetComponentInChildren;
GetComponentInParent;
GetComponents;
GetComponentsInChildren;
GetComponentsInParent;

猜你喜欢

转载自blog.csdn.net/QIJINGBO123/article/details/86508524
今日推荐