Unity API常用方法和类详细讲解4

被刻印的时光 ゝ 提交于 2020-02-29 15:35:28

Unity API常用方法和类详细讲解

036-二维向量Vector2中的静态方法

向量是结构体,是值类型,要整体赋值.
transform.position=new Vector3(3,3,3);
Vector3 pos=transform.position;
pos.x=10;
transform.position=pos;

Vector2.LerpUnclamped

040-使用Random生成随机数

随机数Random.Range(0,10);不生成最大值
Random.Range(4,5f)
041-其他随机生成方法介绍
value 0-1之间的随机数;
state 获取状态;
rotation 四元素,控制朝向;
insideUnitCircle 圆内随机生成;
insideUnitSphere 球内随机生成;

042-Quaternion四元数介绍以及和欧拉角的区别

Quaternion 旋转;
enlerAngles 欧拉角;
rotation 四元数;

043-Quaternion中的LookRotation方法

Quaternion.LookRotation(position1-position2)
Quaternion.Euler(new vector3)//将欧拉角转换为四元数

044-Quaternion中的Lerp和Slerp插值运算

旋转:Slerp 或Lerp

Vector3 dir =enemy.potation-player.potation;
dir.y=0;
Quaternion target=Quaternine.LookRotation(dir);
player.rotation=Quaternion.Slerp(player.rotation,target,Time.deltatime);

045-Rigidbody刚体组件中position和MovePosition控制移动

推荐通过刚体改变物体位置会更快,而且性能更高
使用Rigidbody.MovePosition控制物体移动会更平滑

047-通过AddForce控制运动

playerRgd.AddForce(Vector3.forwardforce)
playerRgd.position=playerRgd.transform.position+Vector3.fprward
Time.deltaTime10
playerRgd.MovePosition(playerRgd.transform.position+Vector3.fprward
Time.deltaTime*10)

049-通过Application获取datapath

Application.dataPath//返回文件根目录
StreamingAssets//不会被压缩保持原样

051-如何切换加载场景

SceneManager.LoadSceneAsync//异步加载场景
//返回一个AsyncOperation 加载进度

SceneManager.LoadScene(后标);
SceneManager.LoadScene(“输入切换后的场景的名字”);

052-关于SceneManage的其他方法

sceneCount:当前加载场景的数量;
GetActiveScene:得到当前场景的一些基本信息;
eg:SceneManger.GetActiveScence().name;
SceneManager.LoadScene();加载方法(1,通过场景标号;2,通过场景名字;)
SceneManager.LoadScene();异步加载,可以用来设置显示加载的进度条
SceneManager.CreateScene();创建新场景(在编辑器模式下)
SceneManager.GetActionsScene();获取当前场景
SceneManager.GetSceneAt();用来获取指定的场景
SceneManager.GetSceneAtBuildIndex();用来获取指定场景(通过场景标号index)
SceneManager.activeSceneChange();当场景发生变换时(加载新的场景时)触发
SceneManager.sceneLoaded();新场景加载完成时触发
SceneManager.sceneUnloaded();当场景由1转换到2 时,1会被卸载,当a被卸载完成时触发。

54-射线检测

Physics.Raycast();射线检测,检测所发生的射线是否与其他物体的碰撞器发生碰撞,如果发生返回true,没有发生返回false.
RaycastHit;有多种重载方式。如
RaycastHit b;
1.Physics.Raycast(a,out b);a为发射的射线,b为碰撞到的物体,可根据b返回碰撞到的物体的一些属性。
2.Physics.Raycast(a,b,LayerMask.GetMask(“c”));a为发射的射线,b为射线的长度,c为想要检测到的物体的层,可设置多个层。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!