Instantiate(prefab,位置,旋转); //Quaternion.identity表示不旋转初始值
无论实例化的是prefab的组件还是GameObject,都是这个GameObject
声明方法,只能指定根目录下的物体
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