36二维向量Vector2中的静态方法
Vector2.LerpUnclampedAngle 取得夹角;
Clamp Magnitude 限定长度;Distance 距离;
Equals:判断两个向量是否相等
Normslize:自身单位化
Set:赋值
ToString:转变成字符串,可以进行一个格式化的输出
38关于三维向量Vector3
点乘:
根据公式:
就可以计向量a和向量b之间的夹角,从而就可以进一步判断这两个向量是否是同一方向,是否正交(也就是垂直)等方向关系,具体对应关系为:
a·b>0 方向基本相同,夹角在0°到90°之间
a·b=0正交,相互垂直
a·b<0 方向基本相反,夹角在90°到180°之间
叉乘: 在三维几何中,向量a和向量b的叉乘结果是一个向量,更为熟知的叫法是法向量,该向量垂直于a和b向量构成的平面。若向量a=(a1,b1,c1),向量b=(a2,b2,c2),
则向量a·向量b=a1a2+b1b2+c1c2
向量a×向量b=| i j k||a1 b1 c1||a2 b2 c2|=(b1c2-b2c1,c1a2-a1c2,a1b2-a2b1)
(i、j、k分别为空间中相互垂直的三条坐标轴的单位向量).
叉乘的意义就是通过两个向量来确定一个新的向量,该向量与前两个向量都垂直
40使用Random生成随机数
随机数:Random.Range(4,10):随机输出4到10之间的整数,但是不包括最大值10,可以包括最小值;
Random.Range(4,5f):随机生成四到五之间的小数,(加了一个f);
获取当前时间:System.DeteTime.Now.Ticks;Random.InitState(int seed):根据种子(seed)产生随机数;
41其他随机生成方法介绍
Random.value;随机生成0到1之间的小数,包括0和1;
Random.state:获取当前的状态, 也就是获取种子;
Random.rotation:随机获取四元素,获得一个朝向;Random.insideUnitCricle:随机以半径为一的圆内生成二维位置Random.insideUnitSphere:随机在一个球体内生成
42Quaternion四元数介绍以及和欧拉角的区别
Quaternion 旋转;
enlerAngles 欧拉角;
rotation 四元数四元数方便计算,欧拉角方便观察;
43Quaternion中的LookRotation方法
Quaternion.LookRotation(position1-position2)
Quaternion.Euler(new vector3)//将欧拉角转换为四元数
欧拉角转化成四元数再赋值给rotation
通过enlerAngles可以把四元数转化为欧拉角;eg:cube.rotation.eulerAngles;
通过Euler可以把欧拉角转化成四元数;
cube.rotetion=Quaternion.Euler(new Vector3(45,45,45));
让游戏主角朝向敌人:Vector3 dir =enemy.potation-player.potation;
dir.y=0;player.rotation=Quaternine.LookRotation(dir);
LookRotation()前方向变为获取的方向;
44Quaternion中的Lerp和Slerp插值运算
旋转:Slerp 或Lerp
45Rigidbody刚体组件中position和MovePosition控制移动
推荐通过刚体改变物体位置会更快,而且性能更高
使用Rigidbody.MovePosition控制物体移动会更平滑
centerOfMass 取得重心点;
刚体组件移动位置Transform会更新,性能更高
46通过刚体控制游戏物体旋转
rigidbody.MoveRotation(Quaternion.Slerp(player.transform.position+Vector3.forward*Time.deltaTime));
47通过AddForce控制运动
Addforce 施加力;
48Camera类的学习和常用方法
ScreenPointToRay 屏幕上的点;
49通过Application获取datapath
Application.dataPath//返回文件根目录
StreamingAssets//不会被压缩保持原样
Application 路径;
dataPath 工程suoxu数据;
StreamingAssets 资源文件;
StreamingAssetsPath 资源文件数据读取
persistentDataPath 数据持久化路径
temporaryCachePath 临时目录;
50Application中的常用静态变量和静态方法
静态变量:
ompanyName:公司名
identifier:包名
51如何切换加载场景
SceneManager.LoadSceneAsync//异步加载场景
//返回一个AsyncOperation 加载进度
SceneManager.LoadScene(后标);
SceneManager.LoadScene(“输入切换后的场景的名字”);
52关于SceneManager的其他方法
sceneCount:当前加载场景的数量;
GetActiveScene:得到当前场景的一些基本信息;eg:SceneManger.GetActiveScence().name;