Unity脚本:
1.1继承MonoBehaviour类
Unity中所有挂在到游戏对象上的脚本中的类必须继承MonoBehaviour类(直接或者间接)。MonoBehaviour类中定义了各种回调方法。
Public class NewMonoBehaviourScript :MonoBehaviour{...}
1.2类名字必须匹配文件名
C#脚本中类名需要手动编写,而且类名还必须和文件名相同,否则当脚本挂载到游戏对象时,在控制台会报错。
1.3Unity调试
在Unity中,可以使用print()和Debug.Log()打印调试信息。但print()只能在Mono类中使用,所有一般情况下最好使用Debug.Log(),它和print()效果一样,但它可以在各处使用。
同时也可以使用Debug.Log.Warning()和Debug.LogError()收集警告和错误信息。
Debug.Break()设置断点。如果想查看特定情况发生时对象属性的变化时,用断点可以快速地完成。
2.脚本生命周期
创建UnityC#脚本时,脚本中会自动创建两个函数,Start()与Update(),这就是Unity的生命周期函数。
生命周期函数执行顺序:Awake()——>OnEnable()——>Start()——>FixedUpdate()——>Update()——>LateUpdate()——>OnGUI()——>OnDisable()——>OnDestroy()
3.几何属性类
Unity中的几何属性类Transform主要是用来描述每一个游戏对象的几何属性的,包括:位置、旋转和缩放比例等。
4.对游戏对象的操作
4.1通过名字或标签获取游戏对象
Unity 脚本中可以使用FindWithTag方法和Find方法来获取游戏对象。
FindWithTag方法:获取指定标签的游戏对象。
GameObject tag=GameObject.FindWithTag(“sometag”);
Find方法:获取指定名字的游戏对象。
GameObject name=GameObject.Find("somename");
4.2.通过组件名称获取游戏对象
FindObjectOfType()方法:获取挂载指定类型组件的第一个游戏对象。
Test test=FindObjectOfType<Test>();
FindObjectsOfType()方法:获取所有挂载指定类型组件的游戏对象。
Test[] tests=FindObjectsOfType<Test>();
5.销毁游戏对象
Unity脚本中可以通过Destroy()方法销毁游戏对象。
Destroy(this);//销毁脚本实例对象,但不销毁游戏对象
Destroy(this.gameObject);//销毁挂载该脚本的游戏对象
Destroy(this.gameObject,2f);//延迟销毁挂载该脚本的游戏对象
DestroyImmediate(this.gameObject);//立即销毁
DontDestroyOnLoad(this.gameObject);//跳转界面不销毁
6.Vector向量类
Vector2类:表示二维向量。
Vector3类:表示三维向量。
二维与三维表达方式一致,以三维为例:
第一种方式:
Vector3 position1=new Vector3();
position1.x=1;
position1.y=2;
position1.z=2;
第二种方式:
Vector3 posotion2=new Vector3(1,2,2);
7.动态创建游戏对象
在游戏开发过程中,需要动态的创建一些游戏对象,或者是克隆一些游戏对象。
动态创建游戏对象能够节省大量的游戏内存,降低Draw Call.
Unity提供了Instantiate()方法用于游戏对象的创建
Instantiate(预设体,位置,旋转角度)