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