环境:
- UnityHub3.3.0-c8
- Unity2021.3.20f1c1 LTS
- Visual Studio 2022
什么是GameObject
在Unity
中,GameObject
是游戏中最基本的实体。它可以被看作是游戏场景中所有其他对象的容器。GameObject
可以包含许多不同的组件,如Transform、Renderer、Collider``等。通过添加这些组件,GameObject
可以具有不同的属性和功能,如移动、旋转、显示和与其他对象进行交互等。
在Unity
中,通过创建、实例化和管理GameObject
对象,可以构建出一个完整的游戏场景。
创建
先自行创建一个2D项目
找到一个名为Hierarchy
栏目
右键
会自动新建一个名为GameObject
的主体,要想查看到它,需要选择MoveTool
,还有点击该主体。
Choosing an Icon
我们可以在Inspector
栏,对它进行rename
和选择select icon
等操作,注意对于空对象来说,刚启动完的项目,之前选择的select icon
内容会自动显示出来。
但是一旦在Hierarchy
进行点击与移动该空物体,就不会显示这个select icon
了,而换成其他物体,比如cube
之类的,可以让select icon
显示出来,我不知道这是不是目前最新版本的问题。
另外,我们还可以在Game
中对其进行查看
当然了,在icon
中也可以选择我们自己的套图
GameObject Components
点击空对象
->看右侧Inspector栏
->Add Component
->Sprite Renderer
可以在Sprite
点击我们自己的精灵图,那些让我们热血澎湃或者喜闻乐见的内容,都是从套一个图开始的。
想要添加的我们想要的图,则只需在Project
的Assets
中放入自己想要的图,并把该图拉入到下图的Sprite
位置,而它默认Background
GameObject Code
在Project\Assets
右键创建一个C# Script
的脚本->rename自己想要的名字
之后把自己创建的C#脚本扔到自己在Hierarchy
创建的对象中,就可以进行调试操作,初始的代码内容如下:
注意点:
- 类的名称必须要跟你脚本的名称一致,如果你开始不
rename
,等创建完成后再rename
的话,VS中的内容不会跟着发生变化,这时你就不可以addComponent
进GameObject
了。
Dynamically Create GameObject
如果你希望可以通过代码来创建GameObject
,可以这样写:
void Start(){
new GameObject("MyNewGameObject");
}
之后将这个脚本Add Component
任意一个对象,在unity
中运行,Hierarchy
栏就会新增一个名为MyNewGameObject
的GameObject
,运行结束后又会消失。
如果你希望这个新增的GameObject
可以addComponent
其他内容,比如Sprite Renderer
,实现方法如下:
void Start(){
GameObject myGo = new GameObject("MyNewGameObject");
myGo.AddComponent<SpriteRenderer>();
}
或者这样写
GameObject myGo = new GameObject("MyNewGameObject",typeof(SpriteRenderer));