赞
踩
选中摄像头:ctlr+shift+f
GameObject obj = GameObject.GreatPrimitive(PrimitiveType.Cube);
obj.name = “我的方块”;
返回数组
不会立马删除,在下一帧删除。DestroyImmediate是立马删除,一般不用,避免卡顿。
GameObject.DontDestroyOnLoad()
成员变量
受scale影响的
不受scale影响的
受和不受scale影响的
受和不受
Vector3 v = new Vector3(0,0,0);
//算是unity的结构体
Vector3.Distance( v1, v2 );
Vector3.forward:世界坐标的前方
transform.forward:自身坐标的前方
1.公式自己算
2.API算
(还是能理解,坐标和第二个参数叠加)
自身坐标动,一般用这个
this.transform.parent
this.transform.parent = null;
//赋值设置
this.transform.parent = 某个对象;
//API设置
this.transform.SetParent(null);
抛弃所有儿子
this.transform.DetachChildren();
this.transform.Find(“Cube 1”);
//能找到失活对象,GameObject查找方法不可以
- this.transform.childCount //儿子数量
- 索引获得儿子:this.transform.GetChild(0);
this.transform.IsChildOf(对象);
this.transform.GetSiblingIndex();
//第一个
this.transform.SetAsFirstSibling();
//最后一个
this.transform.SetAsLastSibling();
//指定位置,如果超过个数则放到最后一个,负数还是最后一个
this.transform.SetSiblingIndex(num);
//受到缩放影响
//点
this.transform.InverseTransformPoint( Vector3.forward );
//不受到缩放影响(受影响InverseTransformVector)
//方向
this.transform.InverseTransformDirection( Vector3.forward );
KeyCode式
字符式(一般少用)(有坑要小写)
Horizontal
Vertical
3. 透视,正交
4. Near
5. 渲染顺序深度(多个摄像机,层级大的能被看到,数值越小越先渲染)
多个摄像机,叠加显示,配合这个使用,深度较高设置下图(比较重要)
6. 渲染纹理
7. 是否启用剔除遮挡(提升性能)
8. 视口范围(主机游戏分屏幕多人游戏)
之前脚本获取的前提是摄像机tag是maincamera
摄像机数量:
Camera.allCameraCount;
界面上所有参数都可获得,比如:
世界坐标转屏幕坐标(比较重要,可以做头顶血条等):
Vector3 v = Camera.main.WordToScreenPoint(this.transform.position),得到的z是摄像机和物体的距离
屏幕坐标转世界坐标(ScreenToWorldPoint)(需要设置个z轴,不然转换的坐标一直在摄像机位置):
碰撞的三种状态:碰到,结束,一直接触(要摩擦时候)
collision可以得到物体物体的对象、坐标、碰撞点的信息
而触发器出入的是collider
注意:如果异形物体,刚体在父对象上,通过子对象挂载脚本检测碰撞行不通,必须挂在父对象上。
可以把碰撞、出发器函数写出虚函数在子类里面重写逻辑。
RigiBody rigiBody = 获得刚体组件;
rigiBody.AddForce(Vector3.forward * 10);
//瞬时的力
//也可以在这里实现以自身坐标动,用this.transform.forward
rigiBody,AddRelativeForce(Vector3.forward * 10)
//世界坐标
rigiBody.AddTorque( Vector3.up * 10 );
//自身坐标
rigiBodyAddRelativeTorque( Vector3.up * 10 );
//不会影响全局,只会影响调用了这方法脚本物体
rigiBody.AddExplosionForce(力的大小,保证中心,爆炸半径)
Acceleration
Force(最符合真实)
Impulse
VelorcityChange(忽略质量时间)
//Unity为了节省性能自动休眠
//放Update里面
if( rigiBody.IsSleeping() )
{
rigiBody.WakeUp();
}
不要好高骛远
不要心浮气躁
不要急于求成
积少成多,慢慢积累
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。