Unity API——Monobehaviour、Math、Input

Monobehaviour类

Variable
runInEditMode 在编译器模式下运行

Public Function
(1) Invoke:调动一个方法(float time 等待时间)
(2) InvokeRepeating:重复调用某方法
(3) CancelInvoke:取消在当前脚本里面的Invoke调用
(4) IsInvoking:判断是否正在调用
测试如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(5) StartCoroutine:开始执行协程方法
①使用方法名②使用方法调用
(6) StopCoroutine:停止协程方法
①使用方法名②使用方法调用
(7) StopAllCoroutines:停止所有协程方法

Coroutine协程方法和普通方法执行时的区别:
如果执行的是普通方法,那么等这个方法执行完才会继续向下执行如果执行的是协程方法,则不必等协程方法执行完,就会向下执行(1协程方法不会阻塞当前方法的执行进程;2协程方法本身可以进行暂停)
Coroutines
1,返回值是IEnumerator
2,返回参数的时候使用yield return
3,协程方法的调用StartCoroutine(method())
测试如下:
在这里插入图片描述
在这里插入图片描述
从测试中我们可以看出,先执行print(“hahaha”),后执行了print(“hahaColor”)。

我们可以利用协程做一个颜色渐变的控制,代码如下:

void Update()
{
	if (Input.GetKeyDown(KeyCode.Space))
	{
		StartCoroutine("Fade");
	}
}
IEnumerator Fade()
{
 	for(float i=0;i<=1;i+=0.1f)
	{
		cube.GetComponent<MeshRenderer>().material.color = new Color(i,i,i,i);
		yield return new WaitForSeconds(0.02f);
	}
}

Static function
Print:输出

Inherit member
(1) isActiveAndEnable:判断组件是否激活
(2) enable=true/false:设置游戏物体激活或禁用
(3) tag:标签
(4) gameObject:获得这个组件所在的游戏物体
(5) transform:获得这个组件所在游戏物体的transform组件
(6) name:获得游戏物体的名字
测试如下:
在这里插入图片描述

在这里插入图片描述
Massage
OnMouse开头:
OnMouseDown:当鼠标按下调用 用在GUIElement,Collider
OnMouseUp:当鼠标抬起调用
OnMouseDrag:拖拽在哪个物体身上点击,抬起的时候也在那个物体上触发(条件1、trigger为true 2、Queries HitTriggers为true)
OnMouseEnter:鼠标移上去
OnMouseExit:鼠标移出
OnMouseOver:鼠标在物体上面
OnMouseUpAsButton:当鼠标按下和抬起在同一物体身上时才会触发,触发时机是在鼠标抬起时触发
我们先做一下测试:

在这里插入图片描述

Mathf类

Static Variables
PI:圆周率
Deg2Rad:度数变成弧度
Rad2Deg:弧度变成度数
Epsilon:无限小的正数
Infinity:正无穷
NegativeInfinity:负无穷

Static Functions
ABS:取绝对值
Ceil:向上取整(返回float类型)
CeilToInt:向上取整(返回int类型)
*Clamp:夹紧(float value,float min,float max):value小于min,返回min;value大于max,返回max;value位于中间,返回value(经常用于返回范围内的值)
我们可以简单测试一下Clamp:

//Debug.Log(Mathf.Clamp(Time.time, 1.0f, 3.0f));

在这里插入图片描述

Clamp01:默认值,默认范围0-1ClosestPowerOfTwo 2的n次方
DeltaAngle:两个角度之间最小夹角
Exp:e的次数
Floor:向下取整 返回float类型
FloorToInt:向下取整 返回int类型
*Lerp:插值运算(float a,float b,float t)a b代表一个范围,t是0和1之间的数。比例运算
我们简单测试一下Lerp:随着t的变化,输出变化

//print(Mathf.Lerp(a, b, t));

在这里插入图片描述

Max:取最大值
Min:取最小值
MoveTowards:移动的控制
Pow:(float f,float p)取f的p次方
Sqrt:取平方根
MoveTowards:在范围内匀速移动
PingPong:在范围内来回运动(类似于乒乓球运动)
大家可以利用下面的代码做一些简单的测试:

//float x = cube.position.x;
//float newX = Mathf.Lerp(x,10,0.1f);

//float newX = Mathf.MoveTowards(x,10,Time.deltaTime*speed);

//float newX = Mathf.MoveTowards(x, 10, 0.1f);
//cube.position = new Vector3(newX,0,0);

//print(Mathf.MoveTowards(a, b, t));

//cube.position = new Vector3(Mathf.PingPong(Time.time*speed,10),0,0);

Input类

Static Variables
acceleration:陀螺仪 通过重力感应控制游戏物体
imeIsSelect:判断输入法是否被选择
anyKey:任何键按下时一直返回true
anyKeyDown:任何键按下都会返回true
mousePosition:获取鼠标在屏幕上的位置 (像素位置)

StaticFunction
GetKey:按键按中
GetKeyDown:按键按下
GetKeyUp:按键抬起
GetMouseButten:鼠标按键按中
GetMouseButtenDown:鼠标按键按下
GetMouseButtenUp:鼠标按键抬起
GetButten:虚拟按键按中
GetButtenDown:虚拟按键按下
GetButtenUp:虚拟按键抬起(Edit里project里Input中Axes中的虚拟按键)
GetAxis:根据轴控制移动或旋转(可以模拟物体的加速运动)
GetAxisRaw: 根据轴控制移动或旋转(没有渐变效果)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值