声明方法,只能指定根目录下的物体
DontDestroyOnLoad();
//GameObject在加载下一个场景的时保留下来,不销毁,不可以是子物体,可以是组件(它的物体将保存)
Destroy();//删除GameObject,Script,组件等,第二个参数为秒,n秒后删除销毁
DestroyImmediate();//第二个参数可以指定true将资源删除,直接销毁
Destroy()标志删除,下一帧或则几秒后才是真的删除。
World,Screen,Viewport
世界坐标 三维
屏幕和视图z轴都为0,视图为(0,0)~(1,1)
互相转换使用Camera类
Physics.Raycast(Vector3 origin,Vector3 direction,RaycastHit hitInfo,float distance,int LayerMask)
//前两个参数可以用一个Ray代替,等同于↓
Ray r = mCamera.ScreenPointToRay(Input.mousePosition);
Physics.Raycast(Ray r,RaycastHit hitInfo,float distance,int LayerMask);
将鼠标点击屏幕,由Camera向鼠标点击方向作为一条射线,然后用RayCatch获取RayCastHit
LayerMask指定不检查的层次,可以通过方法将层的名字转换而成:
LayerMask Mask = LayerMask.NameToLayer("Entity");
Ray r = mCamera.ScreenPointToRay(Input.mousePosition);
Physics.Raycast(Ray r,RaycastHit hitInfo,float distance,1<<Mask.value);
LayerMask的每一位都代表一个层,第6层Layer表示在第7位,如果为1跳过这层。
前提:要有碰撞体,相机有射线检测,声明在脚本组件中
void OnMouseEnter(){}//鼠标进出调用
void OnMouseOver(){}//鼠标停留时调用
void OnMouseExit(){}//鼠标退出时调用
void OnMouseDown(){}//鼠标点击时调用
void OnMouseUp(){}//鼠标抬起时调用
void OnMouseDrag(){}//鼠标拖动时调用
void OnMouseUpAsButton(){}//在同一碰撞体下按下松开才调用
GetKey("up");//直接的按键类型KeyCode
GetButton(bt);//InputManager的按钮
GetButtonDown(bt);GetButtonUp(bt);//按住执行一次
GetButton(bt); //按住一直执行
GetAxis("Horizontal");//范围 (-1,1)
GetAxisRaw(axisName);//摇杆
Descriptive Name +导出后的描述
Descriptive Negative Name -导出后的描述
Negative Button -的按键名称
Position Button +的按键名称
Alt.... 备用按键
Gravity,Sensitivity 控制增长回落的速度
Dead 小于此值就为0
Snap 是否突然反向,按反向变0
Angle(Vector3 from,to); //返回夹角
ClampMagnitude(Vector3 v,float limit); //限制向量长度
Distance(v1,v2);//两点的距离
Lerp(a,b,t);//根据t插值计算a到b的点
MoveTowards(cur,tar,speed);//根据速度朝目标移动
RotateTowards(cur,tar,speed);//根据速度朝目标旋转移动
//Slerp,Max,Min
Scale(v1,v2);//返回v1向量以v2向量放大缩小的向量
Project(v,o);//v向量投影到o上
ProjectOnPlane(v,plane);//投影到平面上
Reflect(v1,normal);//通过一条指定轴反射向量
magnitude //距离原点0,0,0的长度
sqrmagnitude //上面值的平方
normalized //求此向量的单位向量,只读
cc = Vector3.Normalize(v) //不改变v
back (0,0,-1) forward (0,0,1)
down (0,-1,0) up(0,1,0)
left (-1,0,0) right (1,0,0)
one (1,1,1) zero (0,0,0)