Unity 学习笔记——API

void Start();//游戏开始执行一次

void Updata();//每帧调用

void Reset();//在附加或取消附加时触发

Time类

.delta//每帧时长

.fixedTime//从游戏开始到现在的时间

.frameCount//从游戏开始到现在一共运行了多少帧

.timeScale/*得到deltaTime时会除以该值,设置为0用于暂停游戏

也可以设置不同的值来实现设置运动速率的缩放

*/

GameObject类

//1.创建游戏物体(用于创建空游戏物体)

GameObject go=new  GameObject("cube");

//2.根据prefab或另外一个游戏物体创建游戏物体

GameObject.Instantiate(prefab);

//3.创建基础物体

GameObject.CreatePrimitive(PrimitiveType.cube);

//给游戏物体添加组件

.AddComponent<组件名>();//也能添加自己的脚本

.activeInHierarchy//获取到游戏物体是否激活(只读)

.SetActive(false);//设置游戏物体激活状态

.tag//获取游戏物体的Tag标签值(用于游戏物体的分类)

//获取游戏物体上的组件

.GetComponent<组件名>();

//查找游戏物体

Find(游戏物体名字);//静态方法

FindGameObjectsWithTag(标签名)//静态方法,负数查找,返回GameObject的数组

 //广播发送消息(在游戏物体及其子物体上寻找该方法来执行)

.BordcastMessage(方法名,null,SendMessageOptions.DontRequireReciver);/*

SendMessageOptions.DontRequireReciver表示就算没有接受者也不会报错

*/

//针对某个游戏物体发送信息

.SendMessage(方法名,null,SendMessageOptions.DontRequireReciver);

//针对某个游戏物体以及它所有的父物体

.SendMessageUpwards(方法名,null,SendMessageOptions.DontRequireReciver);

Object类

 .name //获取名字

 Destroy(object);//静态方法,销毁对象

 DontDestroyOnLoad(object);//在加载新场景时,不销毁这个对象

 FindObjectOfType<light>();//静态方法,在当前场景中查找某种类型的组件(第一个),不查找未激活的

 //为类添加这个特性后,该类在编辑器模式下也会运行

 [ExecuteInEditMode]

MoonBehaviour类

.enable//设置组件的激活状态

.name

.tag

.gameObject

.transform

Invoke(方法名,秒);//在x秒后调用方法

IsInvoking("Attack");//判断方法是否处于被调用的状态

InvokeRepeating(方法名,几秒后调用,调用时间间隔);//循环调用

CancelInvoke();//不给参数将所有Invoke都取消,指定参数将指定的Invoke取消

Coroutines//协程方法(不会阻塞线程,不用等待返回),协程方法要在方法前添加IEnumerator

//1.返回值是IEnumerator

//2.返回时使用yieldreturn null/0;

//3.协程方法调用时使用StartCoroutine(method());

yield return new WaitForSeconds();//在协程中,等待x秒

StopCoroutine(协程方法名)//停止协程(怎么开启怎么关闭)

StopCoroutine(IEnumerator对象)//停止协程

//用方法名开启就用方法名关闭,用调用的形式开启,就用IEnumerator关闭

//鼠标相关的函数

//数学类

Mathf

Abs();//绝对值

Clamp();//限定返回值,在min,max中则返回自己,过小返回min,过大返回max

DeltaAngle();//计算2角度间最小差值(夹角)

Cell();//向上取整

Floor();//向下取整

Sqrt();//取得平方根

ClosestPowerOfTwo(x);//取得x离2 4 8 16 32 。。最近的数值

//t一般使用Time.deltaTime,t为负数就是远离,t为正数就是靠近

Lerp(a,b,t);//插值运算,t=0取a,t=1取b,t=0.5取中间(按比例取值),先快后慢

LerpAgle();//插值,0-360度

MoveTowards(a,b,t);//匀速插值,1m/s

PingPong(t,length);//(来回运动)最小值0,默认t=0,如果t增加且在length范围内则t正常增加,如果t增加超过length,则反而减小

Input//输入流

Getkey();//获取持续键盘事件

GetKeyDown();//获取按下键盘事件

GetKeyUp();//获取抬起键盘事件

GetMouseButton(x);//获取鼠标按键持续按下,x=0,1,2表示左键,右键,中键

GetMouseButtonDown();//鼠标按键按下

GetMouseButtonUp();//鼠标按键抬起

GetButton();//监测虚拟按键

GetButtonDown();

GetButtonUp();

GetTouch();//触摸监测,easyTouch插件用于监测触摸手势等

.anyKey;//监测按下任意键(鼠标键盘)

.mousePosition//获取鼠标在屏幕上的位置,像素为单位

Vector2结构体

Vector2 a=new Vector2(2,3);

a.magnitude//获取到a的长度

a.sqrMagnitude//获取到a的x平方+y平方

a.normalized//获得a单位向量,保持方向不变,长度变为1

Angle(vector2 x,Vector2 y);//取得2向量夹角

Distance(vector2 x,Vector2 y);//取得2向量间长度

Vector3结构体

Project(Vector3 vector,Vector3 onNormal);//获取一个向量在另一个向量上的投影

Reflect();//获得反射向量

Slerp();//角度插值(用于转向)

Random类

Ranage();//静态方法,取得一个随机数

InitState(int i);//设置随机数种子,种子相同,产生的随机数序列就一样

rotation();//获得一个四元数

insideUnitCircle();//在一个点附近半径为1的圆里生成随机点

insideUnitSphere();//在一个半径为1的球体中随机Vector3点

Quaternion四元数结构体

Euler(vector3 x);//将一个欧拉角转换为一个四元数

LookRotation();//让一个游戏物体面向一个Vector3向量

Rigdbody刚体组件类

继承自组件类

.position//控制位置(移动一次)

MovePosition(Vector3 x);//插值运算持续移动

//不论是移动位置还是修改旋转,刚体更高效

通过AddForce施加力控制运动

AddForce(Vector3 x,力的大小);

Camera摄像机类

摄像机类常用于射线检测,获取屏幕位置,渲染

AppLication类

文件操作,平台检测,打包的设置

切换加载场景

SceneManger类

需要引入命名空间UnityEngine.SceneMangement

LoadScene();加载场景

猜你喜欢

转载自blog.csdn.net/qq_37446649/article/details/79872498