Application获取datapath
Application.datapath
Editor中返回一个工程目录
StreamingAssets 这个文件夹放得是什么格式,就会是什么格式,不会被转换
Application.StreamingAssetsPath获取这个文件夹的路径
下面两个Editor模式中使用的
Application.persostentDataPath想要保存的东西
temporaryCachePath 临时目录
Application获取datapath
Application.datapath
Editor中返回一个工程目录
StreamingAssets 这个文件夹放得是什么格式,就会是什么格式,不会被转换
Application.StreamingAssetsPath获取这个文件夹的路径
下面两个Editor模式中使用的
Application.persostentDataPath想要保存的东西
temporaryCachePath 临时目录
Camera.main
通过标签来寻找相机,是唯一的。
ScreenPointToRay
Ray ray = mainCamera.ScreenPointToRay(new Vector3(200, 200, 0));
Debug.DrawRay(ray.origin, ray.direction * 10, Color.yellow);
像素位置起点指的是屏幕位置
力
通过刚体控制游戏物体旋转,能效更好
操作比较多的情况下MoveRotation比较节约性能
Reset 方法是脚本被激活或者重置后第一个调用的方法.
通过刚体组件修改位置的话,transform会更新,性能会更高
冻结XZ轴后,会倾斜的物体就不会到了
MovePosition(Vector3 position)会有插值,会更加平滑
平滑的旋转
Slerp
Euler();可以把一个欧拉角变成一个四元数
Quaternion.LookRotation(Vector3 forward,Vector3 upwards=Vector3.up);
游戏中给一个向量给主角,返回一个四元数,
两个向量想剪,然后把Y轴调为0就可以忽略高度差
四元数(结构体)
变量
eulerAngles 欧拉角 一般情况下可以和四元素转换
this[] //x,y,z,w
w
x
y
z
静态方法
ColorHSV 颜色的随机生成
静态变量
Random.value 生成一个0到1之间的小数包含0到1
Random.state 获取当前的状态,获取这个状态后,就可以按照当前的状态生成随机数
Random.rotation
Random.insideUnitCircle;在圆内随机生成一个位置,返回的是一个2维向量
Random.insideUnitSphere在球体内随机生成一个位置,返回的是一个3维向量
Random.Range(a,b); 生成一个a到b范围的数,不包含b,加上f的话就包含小数。
InitState 传播一个初始数随机数(伪随机数)
Random.InitState();
System.DataTime.Now.Ticks(时间的计时周期)
向量相加相减注意方向
相加首尾相加,各个相加
Player-Enemy 敌人指向玩家的位置
Enemy-Player 玩家指向敌人的位置
乘除不改变方向,除非是负的
Vector3既可以表示坐标,也可表示向量
Vector3.Cross 叉乘运算 计算两个向量的垂直向量
Vector3.Project 计算一个向量在另一个向量上的投影
Vector3.Slerp 插值 但是计算的是方向 角度
Vector2中的方法
普通方法
Equal
Normalize 自身单位化,会对向量产生影响
Set
ToString
静态方法
Angle 取得两个向量的夹角
ClampMagnitude(Vector2 vector,float maxlenth) 将向量限定在这个长度之内
Dot()
Lerp(Vector2 a,Vector2 b,float t ) 插值运算
可以用坐标移动
LerpUnclamped(Vector2 a,Vector2 b,float t);
0返回啊,1返回b,0.5返回ab二分之一。>1的话 限定百分比
Max
Min
MoveTowards(a,target,Time.deltaTime) 坐标运动
Reflect
Scale
Vector2中的方法
普通方法
Equal
Normalize 自身单位化,会对向量产生影响
Set
ToString
静态方法
Angle 取得两个向量的夹角
ClampMagnitude(Vector2 vector,float maxlenth) 将向量限定在这个长度之内
Dot()
Lerp(Vector2 a,Vector2 b,float t ) 插值运算
可以用坐标移动
LerpUnclamped(Vector2 a,Vector2 b,float t);
0返回啊,1返回b,0.5返回ab二分之一。不限定
Max
Min
MoveTowards
Reflect
Scale
Vector2 是一个结构体
结构体是值类型
对象是引用类型
tramform.positon=new Vector3(3,3,3);
Vector3 Pos=transform.positon;
pos.x=10;
transform.position=pos;
Vector2即可表示2维向量,也可表示坐标
变量
magnitude 长度
normalized 单位化长度 返回当前向量的单位长度
sqeMagnitude 还未求平方根的长度
this[int] 取坐标 0是X 1是Y
anyKey
anyKeyDown
Input.MousePosition
Camera.main.screenPointToRay屏幕坐标转换成一个射线检测到鼠标有没有点到游戏物体
GetAxis();返回值是一个float类型
Nagetive 负值
Positive 正值
GetAxisRaw(); 只有瞬时值和零
虚拟的按键(自己定义的按键)
GetButton
GetButtonDown
GetButtonUp
Nagetive Button
Positive Button
一个Button 的名字可以对应多个按键,而且形象