UnityAPI学习(二)

Mathf类
静态变量

PI:圆周率

Deg2Rad:由度数变为弧度

Rad2Deg:由弧度变为度数

Epsilon:无限小的一个正小数,0±Epsilon=±Epsilon,anyValue±Epsilon=anyValue

Infinity:无限大的一个数

NegativeInfinity:无限小的一个数

print(Mathf.PI);
静态方法

Abs:取绝对值

Ceil:向上取整数,比本身要大,返回float类型

CeilToInt:向上取整数,比本身要大,返回int类型

Clamp:把一个值限制在一个范围中,有三个参数(value,min,max),如果value小于min返回min,value大于max返回max,在min和max中间返回value,可以用来控制血量或动画效果

Clamp01:把值限制在0到1范围中

ClosestPowerOfTwo:求2的多少次方

DeltaAngle:计算两个角度最小的差

Exp:求e的多少次方

Floor:向下取整数,比本身要小,返回float类型

FloorToInt:向下取整数,比本身要小,返回int类型

Max:判断最大数

Min:判断最小数

Pow:参数(a,b)求a的b次方

Sqrt:求参数的平方根

Lerp:插值运算,参数有三个(a,b,t),a为初始值,b为结束值,t(必须为float类型)为求a和b中间插值的比例,可以用来做动画效果先快后慢的移动

MoveTowards:向目标位置匀速移动,参数为(当前值,目标值,每一帧移动的比例)

PingPong:返回0到length中间的值,参数为(0,length),效果为往返匀速运动

public Transform cube;
void Update()
{
    cube.position = new Vector3((Mathf.Clamp(Time.time, 1.0f, 3.0f)), 0, 0);
}
Input类
静态变量

accelerate:陀螺仪,用来感应重力

imeIsSelected:判断输入法是否被选择

anyKey:任意键,无需传递参数

anyKeyDown:任意键按下一刻,无需传递参数

mousePosition:获取鼠标位置,z轴恒为零

静态方法

GetKey:判断键盘按键(持续)

GetKeyDown:判断键盘按键的按下一刻,参数为(KeyCode.Space)或者键名字的字符串,在按下的一帧执行一次

GetKeyUp:判断键盘按键的抬起一刻

GetMouthButton:判断鼠标按键(持续),0代表左键,1代表右键,2代表中间键

GetMouthButtonDown:判断鼠标按键按下一刻

GetMouthButtonUp:判断鼠标按键抬起一刻

GetButton:检测虚拟按键(持续)

GetButton:检测虚拟按键按下

自定义虚拟按键:edit—project setting—input manager—axes

GetAxis:传递一个按键名字,返回float类型按下时递增到1抬起时再减小到0,可以用来控制运动,模拟物理加速减速的效果

GetAxisRow:按下立刻返回1,没有递增递减的过程

GetTouch:获取触摸按键(可以尝试easytouch插件)

Vector2(二维向量)结构体
静态变量

down,up,left,right,one,zero

变量

magnitude:获取向量长度

normalize:获取向量的单位向量

sqrMagnitude:未开方的向量长度

x/y

构造方法

Vector2 a = new Vector2(1, 1);

结构体不能和类一样单独修改,要整体赋值,单独修改x值的方法如下

transform.position = new Vector2(1,1);
Vector2 pos= transform.position;
pos.x = 0;
transform.position = pos;
公开方法

Equals:判断两个向量值完全相等,返回布尔值

Normalize:把自身单位化,不返回值

Set:直接进行赋值

ToString:转变为字符串进行输出

静态方法

Angle:取得两个向量夹角

ClampMagnitude:传递一个向量,限定在一个范围之内

Distance:传递两个向量,获得两个向量之间的距离

Dot:点乘运算

Lerp:插值运算,变化运动

Max:返回长度最大的

Min;返回长度最小的

MoveTowards:匀速向目标向量移动

Vector3(三维向量)
静态变量

比较二维向量多了forward,back

静态方法

Cross:向量叉乘运算

Project:向量投影,参数为(向量一,向量二),得到向量一在向量二方向上的投影

Reflect:反射向量,参数为(向量一,向量二),向量二作为确定平面的法向量,得到向量一在平面上反射后的向量

Slerp:按向量夹角插值变化,Lerp按照位置插值变化

操作运算

二维三维都有的加减乘除相等的运算

Random生成随机类
静态变量

value:随机生成0到1之间的小数,包括上下限

rotation:随机生成四元数,可以用来控制旋转

state:获取当前状态,向后生成序列中的随机数

insideUnitCircle:在半径为1的一个圆内随机生成二维坐标

insideUnitSphere:在半径为1的球体内随机生成三维坐标

静态方法

Range:随机生成范围内的小数或整数,int不包含上限,float包含上下限

InitState:初始化状态,传递一个种子,通过种子的算法生成伪随机数,一般情况下使用(int)System.DateTime.Now.Ticks,通过计算系统时间生成随机数

print(Random.Range(1, 10));
print(Random.Range(1, 10f));
Quaternion四元数类

一般用来实现旋转功能,四元数和欧拉角都可以表示旋转,欧拉角更便于直观观察

eulerAngles:欧拉角,返回rotation的三维向量,用来直接赋值

rotation:四元数

方法

Euler:将欧拉角转换为四元数,参数为三维向量

LookRotation:旋转游戏物体视角,传递主角到目标的向量

Slerp:匀速插值运算旋转

public Transform player;
public Transform enemy;

void Start()
{
    Vector3 temp = enemy.position - player.position;
    temp.y = 0;//控制角色竖直方向不转动,忽略高度差
    Quaternion target = Quaternion.LookRotation(temp);
    player.rotation = Quaternion.Slerp(player.rotation, target, Time.deltaTime);
}
Rigidbody刚体类

继承自component

变量

centerOfMass:获取刚体重心

freezeRotation:冻结刚体旋转

position/rotation:通过刚体控制位置和旋转更快,不建议在持续移动或旋转的情况下使用

public Rigidbody playerRgd;
void Update()
{
    playerRgd.position = playerRgd.transform.position + Vector3.forward * Time.deltaTime;
}
方法

MovePosition:持续平滑的朝一个方向移动

MoveRotation:持续平滑的旋转

AddForce:给刚体施加一个力,模拟物理效果,力太小的情况运动不起来

Camera

main:直接得到MainCamera中的camera组件,前提时tag必须为MainCamera

ScreenPointToRay:将鼠标所在屏幕上的点转化成射线,可以进行视线检测

Application
静态变量

companyName:公司名

productName:应用名

installerName:安装名

installerMode:安装模

isEditor:判断是否在编译器模式下运行

isFocused:判断游戏是否处于焦点(判断游戏窗口)

isMobilePlatform:判断是否是移动平台

isPlaying:判断是否正在播放

platform:判断运行环境,返回一个平台的枚举类型,可以用来指定特定平台执行的程序

unityVersion:得到unity版本

version:得到开发的应用的版本

dataPath:存放数据,工程路径

streamingAssetsPath:通过文件流读取数据

persistentDataPath:可以实体化的数据

temporaryCachePath:临时缓冲数据

静态方法

OpenURL:打开一个网站

Quit:退出应用,编辑器模式下不行,需要将EditorApplication.isPlaying设置为false

CaptureScreenShot:获取游戏截图,参数为保存的图片名字,也可以设置完整的路径

加载场景

首先要保证场景在Scenes In Build中,然后用SceneManager.LoadScene(场景编号/场景名),可以用LoadSceneAsync获取AsyncOperation中的变量来获取加载进度,显示加载进度条,progress为进度,isDone判断是否完成

SceneManager类

sceneCount:获取已经加载的场景数量

sceneCountBuildSetting:获取scene in build中场景个数

CreateScene:创建场景

GetActiveScene:获取当前场景,返回对象scene,可以获取名字索引路径等,判断是否加载

GetSceneAt:根据索引获取其他场景,index必须大于等于0小于sceneCount

GetSceneByBuildSetting:按照scene in build中的场景索引加载

GetSceneByBuildName:按照场景名称加载

GetSceneByBuildPath:按照场景路径加载

SetActiveScene:把场景设置为激活

有关场景切换时的一些事件

activeSceneChanged

sceneLoaded

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值