学习Unity3d的常用API

1.Time类
Time.realTimeSinceStartUp静态变量可以用来测试性能。
Use:有3个方法
void Method(){}
void Method1(){ int i; i = 1 + 2;}
void Method2(){ int i; i = 1 * 2;}
这边是测试乘法和加法的耗费性能。(同时执行runCount次,看所用的时间)
float time00 = Time.realtimeSinceStartup;
for (int i = 0; i < runCount; i++)
{
Method0();
}
float time0 = Time.realtimeSinceStartup;
Debug.Log(time0 - time00);

float time1 = Time.realtimeSinceStartup;
for (int i = 0; i < runCount; i++)
{
Method1();
}
float time2 = Time.realtimeSinceStartup;
Debug.Log(time2 - time1);

float time3 = Time.realtimeSinceStartup;
for (int i = 0; i < runCount; i++)
{
Method2();
}
float time4 = Time.realtimeSinceStartup;
Debug.Log(time4 - time3);


2.创建游戏物体的三种方式
①直接通过new GameObject();来创建一个空物体。
②通过Instantiate(Gameobject obj); 通过Prefab来创建一个游戏物体。是克隆过来的。
③通过GameObject.CreatePrimitive(PrimitiveType type);方法来创建一个原始物体。例如Cube,Plane等

3.Mathf中的常用API
静态变量:
Deg2Rad:角度转弧度; 把角度*Deg2Rad
Rad2Deg:弧度转角度; 把弧度*Rad2Deg
Epsilon: 一个非常小的正浮点型数
Infinty:一个非常大的数
NegativeInfinity:一个非常小的数
PI:圆周率

静态方法:
Abs():取正数
三角函数
Clamp():限定再一个范围内
ClosestPowerOfTwo():返回2的次幂
DeltaAngle():返回两个角度的最小角度差
Lerp():差值运算 //先快后慢
MoveTowards():向目标位置移动 //匀速
PingPong(float t, float length):在0-length来回运动
Pow();第一个参数的第二个参数幂次方
Sqrt():求平方根
Ceil(): 向上取整(浮点型)
CeilToInt():向上取整(整数)
Floor():向下取整(浮点数)
FloorToInt():向下取整(整数)
Round():四舍五入(浮点型)
RoundToInt():四舍五入(整数)


4.Input类中的常用API
GetButtonDown(string buttonName);
GetButtonUp(string buttonName);
GetButton(string buttonName);
这个Button是虚拟按钮,是可以自己定义的;在Edit/Project Setting/Input中进行增加或者减少。

5.屏幕坐标系和鼠标坐标系
Input.mousePosition; //得到鼠标在屏幕上的三维向量,z值恒为0.以屏幕左下角为原点。

6.四元数与欧拉角的区别
四元数方便进行运算,而欧拉角能清楚的看到游戏物体的x,y,z的旋转度数。

Quaternion.LookRotation(Vector3 forwardVector3 upwards = Vector3.up);
让一个物体面朝另一个物体。forward是朝向的方向。

6.Camera类中的常用API
Camera.ScreenPointToRay(Input.mousePostion); 返回一条射线从摄像机通过一个屏幕点。 可以用来做射线检测
//射线
Ray ray = Camera.ScreenPointToRay(Input.mousePostion);
//射线检测的信息
RaycastHit rayInfo;
//是否碰撞到游戏物体
bool isCollider = Physics.Raycast(ray,out rayInfo);
if(isCollider)
{
//输出游戏物体的信息
print(rayInfo.collider.name);
}
7.对UGUI控件的事件监听
①通过拖拽来对事件监听
②通过代码添加对UGUI控件的事件监听
得到Button组件然后调用OnClick.AddListener(点击后调用的方法)
gameobject.getcomponent<Button>().OnClick.AddListener(...);
③通过实现接口来添加事件监听(适用于Image这种不能通过上面两种方法注册事件监听的UGI控件)
    • IPointerEnterHandler - OnPointerEnter - Called when a pointer enters the object
    • IPointerExitHandler - OnPointerExit - Called when a pointer exits the object
    • IPointerDownHandler - OnPointerDown - Called when a pointer is pressed on the object
    • IPointerUpHandler - OnPointerUp - Called when a pointer is released (called on the GameObject that the pointer is clicking)
    • IPointerClickHandler - OnPointerClick - Called when a pointer is pressed and released on the same object
通过实现这些接口来实现事件监听。







展开阅读全文

没有更多推荐了,返回首页