位移代码:cube.transform.translate(x,y,z); x=x轴距离 cube为移动的物体(移动的是方向)
transform.position=new vector(x,y,z); x=x轴距离 (移动的是点)
Unity 5.3以上支持 R.AddForce(vector3.forward); //R是Rigidbody一个变量
forward是向前的一个力,其他分别为back:向后,left:向左,right:向右
Vector2 direction = new Vector2(0, 1); transform.Translate(direction);
旋转代码:cube.transform.Rolate(x,y,z); x=x轴旋转角度 cube为旋转的物体
伸缩代码:cube.transform.localScale+=new vector(x,y,z); x=向x轴延伸方向 cube为延伸的物体
世界坐标:
本地坐标:
触发器和碰撞器区别:
1、碰撞体需要添加Box Collider和Rigidbody控件,被碰撞体需要添加 Box Collider控件
2、触发器要勾选Box Collider 控件中的 is Trigger 选项(碰撞器不需要)
3、
触发器方法:
void OnTriggerEnter(Collider other){ Destory this.gameObject; } 当物体碰撞时销毁自身
void OntriggerEnter(Collider other){ Destory other.gameObject; } 当物体碰撞时,销毁被碰撞体
碰撞器方法:
void OnCollisionEnter(Collision collisionInfo){ Destory this.gameObject;} 当物体碰撞时销毁自身
void OnCollisionEnter(Collision collisongInfo){ Destory collisionInfo.gameObject;} 当物体碰撞时,销毁被碰撞体
判断碰撞哪个物体的tag(比如:cube),脚本里面写:if(other.gameO bject.CompareTag(“cube”);
鼠标左键点击有两种方法:
1、Input.GetKey(KeyCode.Mouse0) 鼠标左键一直按住 (如果GetKeyDown,代表只有点击一下有反应) 此类方法常用
2、Input.GetButton("btn_fire") 鼠标左键一直按住 (如果GetButtonDown,代表点击一下有反应)
获得组件的方法:Transform.GetComponent<组件名称>(); //最好在Awake()和Start()中使用
比如:transform.GetComponent
定义实例化对象和目标点:public GameObject go;
public GameObject target;
实例化物体:GameObject obj = Instantiate(go) as GameObject;
控制实例化的物体在哪里生成:obj.transform.position= target.transform.position;
obj.transform.rotation= target.transform.rotation;
另一种方法:Instantiate(go,target,Quaternion.identity);
Quaternion.identity和transform.rotation的区别:
Quaternion.identity就是指四元数Quaternion(0,0,0,0),就是每旋转前的初始角度,是一个确切的值,而transform.rotation是指本物体的角度,值是不确定的,比如可以这么设置transform.rotation = Quaternion.identity;
一个是值类型,一个是属性变量
两种调试方法:print 和Debug.Log
60s计时器:public float time=60; time-=Time.deltatime;
保留小数点后1位:b=Mathf.Round(a*10)/10;
随机数:Random.Range(x,y); 在x到y-1数字中取随机数
记录永久数据:PlayerPrefs.SetInt("c++", a);
读取永久数据:PlayerPrefs.GetInt("c++");
判断数据是否存在:PlayerPrefs.HasKey(“c++”)==false
控制音效播放:①创建一个AudioSource 对象:AudioSource audio;
②在Start方法中赋值给这个对象:audio=transform.GetComponent
③创建控制方法,将要播放的音效赋值给AudioSource对象:audio.clip=audio2;接着播放音效:audio.Play();
④最后在UpDate方法中调用音效播放方法。
音效状态方法:①播放音效:audio.Play(); ②暂停播放:audio.Pause();
③停止播放:audio.Stop();
特效组件:TrailRenderer
Vector3:Vector3向量既可以用来表示位置,也可以用来表示方向。x,y,z: 表示一个空间向量。 This:用于访问x,y,z三个数据使用数组的方式访问,比如: position = new Vector3(1.5f, 3.0f, 6.7f);
position[0]; // 获得1.5
position[1]; // 获取3.0
position[2]; // 获取6.7
改变对象颜色(对象名:cube,颜色:red):cube.GetComPonent
找外部物体(物体名:cube):先定义:GameObject obj; obj=GameObject.Find(“cube”);
延时调用一次:Invoke(“turnColor”,2); //turnColor是改变颜色的方法,两秒后调用一次
延时调用多次:InvokeRepeating(“turnColor“,2,3); //turnColor是改变颜色的方法,首次调用要2秒,间隔3秒再次调用
结束上述两个调用:CancelInvoke(“turnColor”); //turnColor是改变颜色的方法
场景加载的方法:Application.LoadLevel("Level1"); //Level1是一个场景名称
退出游戏的方法:APPlication.Quit();
5.0过后,使用SceneManager.LoadScene("level1");方法获取下一个场景// 需要引用命名空间UnityEngine.SceneManagement;
按钮点击的一种方法:先获取到Canvas里面的Start按钮:GameObject btnObj = GameObject.Find("Canvas/Start"); 定义一个Button变量获取到Button组件:Button btn = (Button)btnObj.GetComponent最后是调用Button的事件方法:btn.onClick.AddListener(onClick); 后者的onClick是定义的点击按钮所要做的事情
OnMouseDown()可以检测碰撞器或者GUI文本的点击事件
线性插值:float result=Mathf.Lerp(3f,5f,0.5f); //前两个参数代表初始值和结束值3和5,第三个参数代表插值比例为0.5,result为4
Vector3 form=new Vector3(1f,2f,3f);
Vector3 to =new Vector3(5f,6f,7f);
Vector3 result=Vector3.Lerp(form,to,0.75f); //结果为(4,5,6)
延时摧毁一个物体:Destory(gameObject,3f); //在3秒后摧毁该物体
摧毁一个组件:Destory(GetComponment<>();
协同程序:
创建物理射线:ray=Camera.main.ScreenPointToRay(input.mousePosition); //主摄像机发射一条射线指向鼠标点击的地方,并存储在ray中
If(Physics.Raycast(Ray,out RaycastHit){}
发送信息:SendMessage("tankDamage"); //发送了一条信息给了tankDamage方法