UnityAPI——Vector2、Vector3、Random、Rigidbody、Camera以及切换场景

Vector2

Static Variables
Down (0,-1)
Left (-1,0)
Up (0,1)
Right (1,0)
One(1,1)
Zero(0,0)

Variables
magnitude:取得向量长度
sqrMagniyude:向量长度的平方
Normalized:对向量进行单位化(方向不变,长度变为一。对向量不产生影响)
X、Y:xy坐标

Public Function
Normalize:自身单位化 (会对向量产生影响)
Equal:判断两个向量是否相等
Set:对X,Y进行赋值

测试如下:
在这里插入图片描述
在这里插入图片描述
向量是结构体,是值类型,要整体赋值
在这里插入图片描述
Static function
Angle:两个向量夹角
ClampMagnitude:夹紧
Distance:a指向b的距离
Lerp:向量插值运算
LerpUnClamped:不做范围限制的插值运算
Max:取最大值
Min:取最小值
MoveTowards:在两向量内匀速移动
测试如下:
在这里插入图片描述

在这里插入图片描述

Vector3

Static Variables
Forward(0,0,1)
back(0,0,-1)
Down (0,-1,0)
Left (-1,0,0)
Up (0,1,0)
Right (1,0,0)
One(1,1,1)
Zero(0,0,0)

Static function
Cross:差乘 取得两向量的垂直向量
Dot:点乘
Lerp:根据位置差值运算
LerpUnClamped:不做范围限制的差值运算
Max:取最大值
Min:取最小值
MoveTowards:在两向量内匀速移动
Normalize:自身单位化
Project:一个向量在另外一个向量上的投影
Reflect:反射(沿法线反射)
Slerp:按照夹角进行插值(适合制作转向)

Operators
Operator-:向量相减
Operator+:向量相加
Operator*:向量相乘
Operator/:向量相除
Operator==:判断两个向量是否相等
测试如下:
在这里插入图片描述
在这里插入图片描述

Random

Static function
InitState:初始化状态(InitState(种子),种子决定随机生成的序列。当种子一样,生成序列也一样)(通过System.DateTime.Now.Ticks获取当前时间,作为种子,这样可使每次运行种子不同,随机生成序列也不相同)
测试如下:
在这里插入图片描述
在这里插入图片描述
ColorHSV 根据HSV和透明度进行随机生成
Range(随机生成范围,不包含最大值)
利用代码测试一下:

print(Random.Range(4,10)) 

在这里插入图片描述

Static Variables
value:0到1之间的小数,包括0和1(可用随机生成rgb值)
state:获取当前的状态(即种子,可根据种子获得一个随机序列)
rotate:用来随机得到一个四元数,可随机获得物体的旋转朝向
insideUnitCircle 半径为1的圆内随机生成一个位置,可用于在固定范围内随机生成敌人
insideUnitSphere 半径为1的球内随机生成一个位置,可用于在固定范围内随机生成敌人
可通过下面的代码测试insideUnitCircle 、insideUnitSphere

cube.position = Random.insideUnitCircle * 5;
cube.position = Random.insideUnitCircle * 5;

Rigidbody

Variables
centerOfMass:取得重心点
freezeRotation:冻结旋转
potation:通过刚体控制游戏物体旋转
addForce:用施加力的方式控制物体的移动(a=f/m 持续加速)
position:通过刚体控制位置移动(如果只是让物体从一个位置移动到另一个位置,使用position就可)
moveposition:控制物体移动(要想持续的让物体从一个位置移动到另一个位置,使用moveposition)
可用下面的代码进行简单测试(测试结果是动态的,在这就不放视频了,可以自己进行测试查看测试结果)
在这里插入图片描述

Camera

ScreenPointToRay 将鼠标在屏幕上的点转化为射线进行检测
可通过下面的代码进行检测

Ray ray = mainCamera.ScreenPointToRay(new Vector3(200,200,0));
Debug.DrawRay(ray.origin,ray.direction*10,Color.yellow);

在这里插入图片描述

Application

Static Variables
dataPath:数据路径
通过Application获取路径的方法:

print(Application.dataPath);
print(Application.streamingAssetsPath);
print(Application.persistentDataPath);
print(Application.temporaryCachePath);

companyName:公司名
productName:产品名
identifier:包名(包路径)
installerName:安装包的名字
installerMode:安装模式
isEditor:判断当前是否在编译器模式下运行
isFocused:判断是否处于焦点
isMobilePlatform:判断是否是移动平台
isPlaying:判断是否正在运行
isWebPlayer:判断是否在网页运行
platform:运行平台
runInBackground:设置产品是否可以在后台运行u
nityVersion:用来判断unity的版本
version:判断当前应用的版本
测试如下:
在这里插入图片描述
在这里插入图片描述
Static Function
OpenURL:可以打开一个网站
Quit:用来退出这个应用(在编译器模式下调用是无法退出的(isPlaying设置false可以退出))
测试代码如下:

 Application.Quit();
 Application.OpenURL("www.sikiedu.com");
 ScreenCapture.CaptureScreenshot("游戏截图");

切换加载场景SceneManager

Static Variables
sceneCount :所有已经加载的场景
sceneCountBuildSetting:BuildSetting里面所有场景的个数

print(SceneManager.sceneCount);
print(SceneManager.sceneCountInBuildSettings); 

Static Functions
将需要打包的所有场景加载到Scene In Build里面
四个创建方法:
LoadScene:
int sceneBuildIndex:Scene In Build里面的标号(索引)
sceneName:场景名字
LoadSceneMode:
LoadSceneMode.single:把当前场景销毁加载新的场景(默认为single)
LoadSceneMode.Additive:把当前场景的游戏物体保存加载下一个场景(并存)
CrateScene 创建场景
GetActiveScene 得到当前场景的信息(Index、name等)
GetSceneAt 根据index获得已经加载的场景的信息
GetSceneByBuildIndex 根据index获得Scene In Build里面其他的场景
GetSceneByName 根据场景名称获得场景的信息
GetSceneByPath 根据路径过得场景的信息
SetActiveScene 把某个场景激活,即切换场景

Events
activeSceneChanged 当我们加载新的场景的时候
sceneLoaded 有新场景加载完成的时候
sceneUnloaded 由a场景切换到b场景的时候

SceneManager.activeSceneChanged += OnActiveSceneChanged;
SceneManager.sceneLoaded += OnSceneLoaded;
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值