一个游戏由场景组成,一个游戏至少要有一个场景。一个场景包含若干个游戏对象,每个游戏对象包含若干个组件。
可以新建一个空物体,通过添加各种组件,就能实现某些功能。
project是一个工程(项目),包含scene在内的所有asset(资源,资产)。
scene是游戏的场景(一个关卡就是一个场景scene),用来承载游戏里面GameObject(包括Camera、Light等等)。
游戏物体(GameObject)可以理解为容纳各种组件(包括内置组件和自定义组件)的容器。每一个GameObject可以有多个Component(组件),每一种组件代表游戏对象有一种功能,游戏对象的所有组件一起决定了这个对象的行为和游戏中的表现。其中比较重要的有Transform,还可能有Script(脚本)。一个GameObject至少包含一个组件:Transform。
快捷键:
Shift Space
程序运行过程中
所做的任何修改都是无效的。
3种方法:
1)Project视图/Create/C# script 或者Project视图/右键/Create/C# script
2)Assets菜单/Create/C# script
3)Hierarchy视图/选中某个GameObject/Inspector视图/Add Component/New Script
只有第三种方式脚本会自动绑定到GameObject上。
脚本文件需要手动保存。
面向组件编程
脚本编辑器
不再内置MonoDevelop
Edit/Preferences(偏爱、偏好)/External tools/External Script Editor
脚本语言
新版本仅支持C#语言,不再支持Javascript、Boo语言
1)开发者编写的每一个脚本都被视为自定义的组件(Component),作为组件,脚本本身是无法脱离游戏对象独立运行的,必须添加到到scene中GameObject的Component中。
2)凡是需要添加到游戏对象上的c#脚本类都需要直接或者间接继承自 MonoBehaviour。
3)Unity通过脚本的文件名查找类,所以文件名和类名(从MonoBehavior中继承的行为类)必须一致(如果后来改了文件名,类名是不修改的,就会出错)。普通的C#类可以随意命名。
4)使用Start或者Awake函数来初始化,避免使用构造函数。原因:unity无法决定构造函数何时被调用。