unity 学习笔记(一)

开始

 

位移代码: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 ColliderRigidbody控件,被碰撞体需要添加 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().useGravity = true;     控制RigidbodyuseGravity的控件为true

 

定义实例化对象目标点: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);  xy-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

 

Vector3Vector3向量既可以用来表示位置,也可以用来表示方向。xyz 表示一个空间向量。  This:用于访问xyz三个数据使用数组的方式访问,比如: 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().material.color=red;

 

找外部物体(物体名: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

你可能感兴趣的:(斜月冷照寒冰凉席)