29 lines
1.5 KiB
GDScript
29 lines
1.5 KiB
GDScript
@tool
|
||
@icon("uid://p0oxphym6oqg")
|
||
|
||
'''
|
||
此类为一个level的最小单元,其可以承载任意多的prop和act
|
||
你可以这样理解,一个level(大关卡),带有n个小关卡,n = scene的数量
|
||
|
||
Scene 必须带有:
|
||
1.Act Manager
|
||
2.复数个Prop
|
||
|
||
其中: ActManager下,带有复数个Act,其主要用于记录各个Prop的不同state,当Act切换时,Prop对应的状态也会切换。
|
||
ActManager的主要作用就是管理这些Act的切换。
|
||
Prop可以简单的理解为场景中的非地形碰撞的,与玩家可交互的道具,AI,等。
|
||
所有的Prop会自带一个PropComponent,其核心功能是负责管理Prop自身的state和state的切换
|
||
|
||
举例:一个门,从State1 -> State2,state1是关闭状态,state2是打开状态,那么:
|
||
1. 我们在State1中定义,门是关的,State2中定义,门是开的。简单的实现比如我们去设置门的坐标
|
||
2. 我们会做一个State1 -> State2的流转函数,其定义了,State1->State2的具体行为,比如,播放一个门打开的动画。
|
||
|
||
|
||
对于任意的添加到Scene的Prop,如果其自身的最上层子节点集中不含有PropComponent,Scene会默认的给他发一个PropComponent
|
||
注意,我并不推荐在Prop上直接挂载PropComponent,通过Scene来添加更为合适。
|
||
|
||
对于Scene,Scene通过PropComponent上的ID,通过ID获取到PropComponent所挂载的组件,这也是为什么我强制要求
|
||
PropComponent必须是处于Prop的最上层子节点集。
|
||
'''
|
||
class_name ReedScene extends Node2D
|