Unity 3D学习笔记之API浅记(建议收藏嘿嘿)
栈:
Stack stack=new Stack();
stack.push(‘a’);在栈顶添加一个字母
stack.peek();从栈顶取出一个字母并且删除
stack.pop();从栈顶取出一个字母不删除
stack.Count();查询栈里的元素个数
队列:
Queue queue=new Queue();
queue.Enqueue(‘a’);从队列顶部添加字母
Queue.peek();从底部取出一个字母
Queue.Dequeue();从底部取出一个字母
Time.timeScale=0表示所有乘以Time.deltaTime的物体都会停止运动,常用来暂停游戏(是因为每一次Time.deltaTime都会去乘以Time.timeScale,所以设为0会停止,设为1会正常播放运动,设为0.5会使运动减缓)
Time.realtimeSinceStartup用来作运行测试
GameObject的创建方法:
new GameObject(“Cube”)//创建一个Cube物体
GameObject.Instantiate(prefab)
GameObject.Instantiate(Prefab GameObject, Vector3 position, Quaternion rotation);//实例化创建物体
GameObject go=GameObject.CreatePrimitive(Primitive.Cube);//创建一个物体
go.AddComponent();//为游戏物体添加组件
go.DestroyComponent();//为游戏物体删除组件
Bool isOn=go.activeInHierarchy表示该物体是否处于**状态,返回值为Bool值
go.SetActive(bool);bool值为ture为**,false为未**
一个游戏又多个场景组成,一个场景由多个游戏物体GameObject组成,多个GameObject由多个组件Conponent组成,组件和游戏物体的很多共有的方法和属性都继承自UnityEngine.Object,UnityEngine.Object又指向System.Object
Destroy(gameobject,5)等待5s后销毁该物体
Transform[] ts=FindObjectsOfType();把查找到的所有Transform类型的游戏物体,返回值为数组,不查找未**的物体
FindObjectOfType()查找单个Transform类型的游戏物体
如:Light light=FindObjectOfType();可用来赋值
GetCompnentsInchildren||GetCompnentsInParent//获取该物体以及该物体的父级或子级的所有相关组件。GetCompnents是获取所有相关组件。
Invoke(“方法名”, 2);2s之后调用该方法
IsInvoking(“方法名”)返回是否调用了该方法名
InvokeRepeating(“方法名”, 2, 0.3F);开始第一次2s之后调用,之后就是0.3s调用一次
CancelInvoke();取消所有invoke方法,如果写了具体方法就取消具体方法
Enable是禁用该组件里的Update方法
OnMouseDown/Up/Drag/Enter/Exit/Over鼠标按下/松开/按下拖拽/放在物体上面(每次执行一次)/离开物体/在物体上(每帧执行一次)
Mathf.Deg2Rad度转弧度
Mathf.Rad2Deg弧度转度
Mathf.Abs绝对值
Mathf.Clamp(Time.time, 1.0F, 3.0F);将time限定在1到3s之内
Mathf.Sqrt平方根值
Mathf.Lerp差值Mathf.Lerp(当前值,目标值,比例值)每帧当前值乘以0-1之间的比例或Time.deltaTime时间比例值运行至目标值,越到目标越慢到无限接近于目标值
float x = transform.position.x;
transform.position = new Vector3(Mathf.Lerp(x,10,Time.deltaTime), 0, 0);
Mathf.MoveTowards(当前值,目标值,增值)相当于每帧当前值增加增值匀速增加至目标值
float x = transform.position.x;
transform.position = new Vector3(Mathf.MoveTowards(x,10,Time.deltaTime), 0, 0);
Mathf.PingPong(Time.delatTime,10)从当前值增加至10,再从10增加值当前值
float x = transform.position.x;
transform.position = new Vector3(Mathf.PingPong(Time.time,10), 0, 0);
Input.GetKeyDown(KeyCode.s)//键盘按下s键
Input.GetMouseButton(0)按下鼠标左键
Input.GetMouseButton(1)按下鼠标右键
Input.GetMouseButton(2)按下鼠标中键
Input.GetButtonDown(“虚拟按键名”)表示按下input的Axes的虚拟按键名
Input.GetAxis(“Horizontal”)获得向左和向右的X轴方向键,左右运动渐变较慢
Input.GetAxisRaw(“Horizontal”)获得向左和向右的X轴方向键,左右运动渐变较快
Input.anyKeyDown表示如果按下任何按键
Input.mousePosition鼠标在屏幕上的位置
Unity.API:点击进入官方文档