Api 应用程序编程接口

前言

笔记是看siki学院中《Unity中常用api》的学习笔记

课程地址:  http://www.sikiedu.com/my/course/59

强烈推荐大家去看老师的课

学习方法(001)

学习中切忌死记硬背,尤其是在学习代码中,要实际动手操作一下。

常用的方法经常使用,不常用的方法留下印象(看Unity文档和api手册)。

什么是事件函数(002)

unity中创建的所有脚本,都默认继承MonoBehaviour。

MonoBehavior——Behavior——Component——Object(继承关系)

默认有Start()方法   开始执行一次;和Update()方法  每帧可执行多次

事件函数的执行顺序(Unity中文手册):https://docs.unity.cn/cn/current/Manual/ExecutionOrder.html

事件函数的执行时机和先后顺序(004)

1.Editor

Reset函数,编辑前就会调用执行。

2.Initialization

Awake函数,Onenable函数(onDisable函数后也可以调用),Start函数在场景启用或者物体被实例化后,就会被调用。

3.Physics

FixedUpdate函数,每秒固定调用一定次数(多次)。//与帧数不挂钩

OnTriggerXXX函数,OnCollisionXXX函数;(用于触发器和碰撞器)

yleld WaltForFixedUpdate函数。

4.Input events

OnMouseXXX函数,输入事件(鼠标)。

5.Game logic

Update函数,每帧运行一次函数。

(Internal animatiom update)

LateUpdate函数

6.Scene rendering

(与场景渲染有关的函数)

7.Gizmo rendering

OnDrawGizmos函数,辅助线

8.GUI rendering

OnGUI函数,(现在基本不用,用UGI)

9.Pausing

OnApplicationPause函数,暂停的时候运行

10.Disable/enable

OnDisable函数

11.Decommissioning

退出场景时运用,物体会被销毁

OnApplicationQuit函数,OnDisable函数, OnDestroy函数。

Time类中的静态变量介绍(005)

Unity中文手册(Time类):https://docs.unity.cn/cn/current/ScriptReference/Time.html

captureFramerate 减慢游戏播放时间,以便在帧之间保存屏幕截图。
deltaTime 完成上一帧所用的时间(以秒为单位)(只读)。
fixedDeltaTime 执行物理和其他固定帧率更新(如 MonoBehaviour 的 FixedUpdate)的时间间隔(以秒为单位)。
fixedTime 最近一次 FixedUpdate 已启动的时间(只读)。此为自游戏启动以来的时间(以秒为单位)。
fixedUnscaledDeltaTime 从上一个固定帧到当前固定帧的独立于 timeScale 的时间间隔(以秒为单位)(只读)。
fixedUnscaledTime 最近一次 FixedUpdate 已启动的独立于 TimeScale 的时间(只读)。此为自游戏启动以来的时间(以秒为单位)。
frameCount 已经过的总帧数(只读)。
inFixedTimeStep 如果在固定时间步长回调(如 MonoBehaviour 的 FixedUpdate)内调用,则返回 true,否则返回 false。
maximumDeltaTime 帧可以耗用的最长时间。物理和其他固定帧率更新(如 MonoBehaviour 的 FixedUpdate)将仅在每帧的该持续时间内执行。
maximumParticleDeltaTime 帧可以在粒子更新上耗用的最长时间。如果帧耗用的时间超过该值,则将更新拆分为多个较小的更新。
realtimeSinceStartup 游戏开始以来的实际时间(只读)。
smoothDeltaTime 经过平滑处理的 Time.deltaTime(只读)。
time 该帧开始的时间(只读)。此为自游戏启动以来的时间(以秒为单位)。
timeScale 时间流逝的缩放。可用于慢动作效果。
timeSinceLevelLoad 该帧开始以来的时间(只读)。此为自加载上一个关卡以来的时间(以秒为单位)。
unscaledDeltaTime 从上一帧到当前帧的独立于 timeScale 的时间间隔(以秒为单位)(只读)。
unscaledTime 该帧的独立于 timeScale 的时间(只读)。此为自游戏启动以来的时间(以秒为单位)。

TimedeltaTime和realTimeSinceStartup的使用(006)

Time.deltaTime

时间间隔,一般用来控制一些动画效果;比如移动物体可以:Vector3.forward* Time.deltaTime 来控制3D物体的移动。

Time.timeScale

控制时间的倍数。(控制Time和deltaTime)

Time.realTimeSinceStartup

计算游戏开始运行到现在时间,可用于性能测试,比如:

float time1 = Time.realTimeSinceStartup;
for(int i; i < 10000; i++)
{
method();
}
float time2 = Time.realTimeSinceStartup;
Debug.Log(time2 - time1);

创建游戏物体的三种方法(007)

构造方法

new

在Start函数中 new一个GameObjective。(空的游戏物体)比如: GameObject go = new GameObject("Cube")

Instantiate

根据prefab进行实例化(预设一个游戏物体)比如: GameObject.Instantiate(prefab)

或者可以克隆其他物体。

CreatePrimitive

创建一些原始的图形,比如: GameObject.CreatePrimitive(PrimitiveType.Plane)

还可以是Capsule , Cube , Cylinder , Plane , Quad , Sphere。

如何给游戏物体通过代码添加组件(008)

可以添加内部组件,也可以添加自定义的脚本

GameObject go = new GameObject("Cube")
go.AddComponent<Rigidbody>();  //添加刚体组件
go.RemoveComponent<Rigidbody>();//移除组件

如何禁用和启动一个游戏物体(009)

tag 标签(区分不同的游戏物体);transform 物体的位置;

activeInHerit 是否处于激活状态; activeSelf 物体是否被禁用(子物体在父物体下有关)

GameObject go = new GameObject();
go.SetActive(false);  //禁用物体
go.SetActive(true);  //激活物体

GameObject、Component和Object的千丝万缕的关系(010)

UnityEngine下Object用有的静态方法(011)

Unity中文手册(UnityEngine下Object):

https://docs.unity.cn/cn/current/ScriptReference/Object.html

变量

hideFlags 该对象应该隐藏、随场景一起保存还是由用户修改?
name 对象的名称。

公共函数

GetInstanceID 返回对象的实例 ID。
ToString 返回 GameObject 的名称。

静态函数

Destroy 删除 GameObject、组件或资源。
DestroyImmediate 立即销毁对象 /obj/。强烈建议您改用 Destroy。
DontDestroyOnLoad 在加载新的 Scene 时,请勿销毁 Object。
FindObjectOfType 返回第一个类型为 type 的已加载的激活对象
FindObjectsOfType 返回所有类型为 type 的已加载的激活对象的列表。
Instantiate 克隆 original 对象并返回克隆对象。

运算符

bool 该对象是否存在?
operator != 比较两个对象是否引用不同的对象。
operator == 比较两个对象引用,判断它们是否引用同一个对象。

GameObject独有的静态方法(012)

Unity中文手册(UnityEngine下GameObject):

https://docs.unity.cn/cn/current/ScriptReference/GameObject.html

变量

activeInHierarchy 定义 GameObject 在 Scene 中是否处于活动状态。
activeSelf 此 GameObject 的本地活动状态。(只读)
isStatic 仅限 Editor 的 API,指定游戏对象是否为静态。
layer 该游戏对象所在的层。
scene 该 GameObject 所属的场景。
tag 此游戏对象的标签。
transform 附加到此 GameObject 的 Transform。

构造函数

GameObject

创建一个名为 name 的新游戏对象。

静态函数

CreatePrimitive 创建一个具有原始网格渲染器和相应碰撞体的游戏对象。
Find 按 name 查找 GameObject,然后返回它。
FindGameObjectsWithTag 返回标记为 tag 的活动 GameObject 的列表。如果未找到 GameObject,则返回空数组。
FindWithTag 返回一个标记为 tag 的活动 GameObject。如果未找到 GameObject,则返回 null。

游戏物体间消息的发送和接收(013)

Unity中文手册(UnityEngine下GameObject):

https://docs.unity.cn/cn/current/ScriptReference/GameObject.html

Message类

BroadcastMessage 调用此游戏对象或其任何子项中的每个 MonoBehaviour 上名为 methodName 的方法。(广播消息)
SendMessage 调用此游戏对象中的每个 MonoBehaviour 上名为 methodName 的方法。
SendMessageUpwards 调用此游戏对象中的每个 MonoBehaviour 上或此行为的每个父级上名为 methodName 的方法。

得到组件的各种方法函数(014)

Unity中文手册(UnityEngine下GameObject):

https://docs.unity.cn/cn/current/ScriptReference/GameObject.html

AddComponent 将名为 className 的组件类添加到该游戏对象。
CompareTag 此游戏对象是否使用 tag 进行了标记?
GetComponent 如果游戏对象附加了类型为 type 的组件,则将其返回,否则返回 null。
GetComponentInChildren 使用深度首次搜索返回 GameObject 或其任何子项中类型为 type 的组件。
GetComponentInParent 返回 GameObject 或其任何父项中类型为 type 的组件。
GetComponents 返回 GameObject 中类型为 type 的所有组件。
GetComponentsInChildren 返回 GameObject 或其任何子项中类型为 type 的所有组件。
GetComponentsInParent 返回 GameObject 或其任何父项中类型为 type 的所有组件。
SetActive 根据给定的值 true 或 /false/,激活/停用 GameObject。

SiKi学院 Unity中常用api学习笔记(001-014)相关推荐

  1. SiKi学院 Unity中常用api学习笔记(015-019)

    Api 应用程序编程接口 前言 笔记是看siki学院中<Unity中常用api>的学习笔记 课程地址:  http://www.sikiedu.com/my/course/59 强烈推荐大 ...

  2. JAVA中常用api学习思维导图

  3. 7 种 Javascript 常用设计模式学习笔记

    7 种 Javascript 常用设计模式学习笔记 由于 JS 或者前端的场景限制,并不是 23 种设计模式都常用. 有的是没有使用场景,有的模式使用场景非常少,所以只是列举 7 个常见的模式 本文的 ...

  4. Crypto API 学习笔记一

    标 题: [原创]Crypto API 学习笔记一 作 者: jdxyw 时 间: 2006-09-01,16:47 链 接: http://bbs.pediy.com/showthread.php? ...

  5. Unity中Android API 28之后无法HTTP请求

    本文节选自洪流学堂公众号技术专栏<大话Unity2019>,未经允许不可转载. 洪流学堂公众号回复log,获取最新版运行时查看日志的工具. 小新:"最近我升级到Android A ...

  6. 删除mysql指令_MySQL常用命令学习笔记

    本文转载自[微信公众号:WalkingCloud,ID:WalkingCloud2018]经微信公众号授权转载,如需转载与原文作者联系 MySQL常用命令学习笔记 一.数据库相关操作 1)创建数据库 ...

  7. 常用API类方法笔记整理1

    常用API类方法笔记整理1 1.文档注释 文档注释是功能级注释,用来说明一个类,一个方法或一个常量的,因此只在上述三个地方使用. 文档注释可以使用java自带的命令javadoc来对这个类生成手册. ...

  8. algorithm头文件下的常用函数-学习笔记

    algorithm头文件下的常用函数-学习笔记 max(x,y),min(x,y),abs(x) swap(x,y) reverse(it,it2) next_permutation() fill( ...

  9. javascript:常用API学习Math.random, toString,slice(),substr(),Math.ceil()

    javascript:常用API学习 1.获得随机数:Math.random() 如何随机获得整数? 2.如何转进制:十进制转二进制?: 变量名.toString(进制数) 3. 36进制:能把一个小 ...

最新文章

  1. System.in.read()的用法
  2. 推荐系统技术演进趋势:召回-排序-重排
  3. asp.net core mvc 异步表单(Ajax.BeginForm)
  4. iPhoneX 序列适配方案
  5. 河北外国语学院计算机宿舍,河北外国语学院宿舍怎么样 住宿条件好不好
  6. cmd imp导入dmp文件_exp/imp、expdp/impdp使用总结,这些你都清楚吗?
  7. 19-matlab知识点复习二
  8. 调用Google翻译API实现文本翻译
  9. 一个程序员的诗集【古诗篇】
  10. 用excel制作双层饼图_Excel 怎么用环形图制作双层饼图,excle饼状图图的制作
  11. 喝咖啡有什么好处和坏处?
  12. 给马云、马化腾订制旅行,这家公司想做旅游行业的“得到”
  13. 阿里云 Linux云服务器登陆方式(Windows远程登录工具XShell,基于ssh建立会话)
  14. GraphicsLab Project之基于物理的着色系统(Physical based shading)-直接光照
  15. Windows消息拦截技术的应用(Hook钩子)
  16. iOS 即时聊天 音频格式转NSData
  17. 你知道吗?除了 P站,还有这些站 ~~
  18. 一本图书的信息包括:图书编号(BookNo),书名(BookName),总册数(Total),借出数(Lend),价格(Value),利用结构体实现以下要求:
  19. python进阶豆瓣青梅竹_python3 Django+MySQL
  20. 用于三维医学图像检测的半监督学习——FocalMix: Semi-Supervised Learning for 3D Medical Image Detection

热门文章

  1. vue中pc端大屏怎么进行rem适配(lib-flexible + postcss-pxtorem)
  2. C语言实现Huffman的编码和解码
  3. rpmbuild参数详解
  4. 正斜杠 / 和反斜杠 \ 的区别
  5. 前端工具文档网站推荐(印记中文、程序员盒子、前站)
  6. 1.2 Architectural Fundamentals
  7. 【Latex】关于Latex超链接的两种形式
  8. 案例|RAC 添加表空间误将数据文件放本地处理办法
  9. 2022春 哈工大《近世代数》习题作业解答汇总
  10. 博士生该怎么做才能提高科研效率?