NActorManager
NActorManager静态类,主要用于集中管理Actor的生命周期、创建、销毁和各种功能。它的主要目的是简化Actor的管理,避免在游戏中直接重复地操作Actor,而是通过统一的管理方式来控制和优化Actor的实例化与销毁。
| 接口名称 | 返回值 | 接口含义 |
|---|---|---|
| CreateActor | NActorPtr | 可以创建对象控件 |
| CreateActorWithComponent | NActorPtr | 可以创建对象控件 |
| DestroyActor | void | 可以销毁对象控件 |
| CreateEmpty | NActorPtr | 可以创建空物体控件 |
| CreateCamera | NActorPtr | 可以创建相机控件 |
| CreateImageView | NActorPtr | 可以创建UIImage控件 |
| CreateLabel | NActorPtr | 可以创建UI文本控件 |
| CreateCanvas | NActorPtr | 可以创建2D画布控件 |
| CreateButton | NActorPtr | 可以创建UI按钮控件 |
| CreatePanel | NActorPtr | 可以创建UIPanel控件 |
| CreateGroup | NActorPtr | 可以创建UI组控件 |
| CreateSlider | NActorPtr | 可以创建UI进度条控件 |
| CreateInputField | NActorPtr | 可以创建UI输入框控件 |
| CreateGifView | NActorPtr | 可以创建UI动图控件 |
| CreateScrollBar | NActorPtr | 可以创建UI滑块控件 |
| CreateScrollView | NActorPtr | 可以创建UI可滑动布局控件 |
| CreateSpherome | NActorPtr | 可以创建天空盒控件 |
| CreateModelActor | NActorPtr | 可以创建模型控件 |
| GetActor | NActorPtr | 获取对象控件 |
| GetActorsByTag | NActorList | 获取对象标签 |
| GetActorsByLayer | NActorList | 获取对象层级 |
| GetNActors | NActorList | 获取多个对象控件 |
| CreateLight | NActorPtr | 可以创建灯光控件 |
| CreateEventSystem | NActorPtr | 可以创建事件控件 |
| AddActor | bool | 添加对象控件 |
| AddActors | int | 添加对象控件 |
创建控件
static NActorPtr CreateActor(const std::string& name, const std::string& actorType = "Empty");
static NActorPtr CreateActorWithComponent(const std::string& name, std::string componentClsName);
| 参数 | 说明 |
|---|---|
| actorType | 控件的类型 |
| componentClsName | 控件挂载的组件脚本名称 |
| 描述:通过上述接口,可以创建一个Actor控件,可以指定Actor的名称以及挂载到脚本组件。 |
代码示例:
void NImageViewTest::Start()
{
auto actor=NActorManager::CreateActor("Test_Act");
auto actorA=NActorManager::CreateActor("test_Actor_name","NButtonTest");
}添加和销毁控件
static void DestroyActor(NActorPtr actor);
static void DestroyActor(NActorRef actor);
static bool AddActor(const NActorPtr& actor, bool recursivelyChildren = true);
static int AddActors(const NActorList& actor, bool recursivelyChildren = true);
| 参数 | 说明 |
|---|---|
| name | 要查找控件的名称 |
| actor | 要销毁获要添加的控件 |
| recursivelyChildren | 是递归添加所有子控件 |
| 描述:通过上述接口统一管理控件的添加与销毁。 |
代码示例:
void NImageViewTest::Start()
{
auto actor=NActorManager::GetActor("ImageView");
if (actor)
{
NActorManager::DestroyActor(actor);
}
}查找控件
static NActorPtr GetActor(const std::string& name);
static NActorList GetActorsByTag(const std::string& tagName);
static NActorList GetActorsByLayer(const std::string& layerName);
static NActorList GetNActors();
| 参数 | 说明 |
|---|---|
| name | 要查找控件的名称 |
| tagName | 要查找控件的tag名称 |
| layerName | 要查找控件的layer名称 |
| 描述:通过上述接口可以根据控件的名称进行查找,也可以通过控件tag的名称进行查找,还支持通过控件的层级名称来进行查找。通过GetNActors接口可以获取场景中所有控件列表。 |
代码示例:
void NImageViewTest::Start()
{
auto actor= NActorManager::GetActor("ImageView");
auto layerActListNActorManager::GetActorsByLayer("UI");
auto tagActlist=NActorManager::GetActorsByTag("UI");
auto allactor = NActorManager::GetNActors();
}创建各种控件
static NActorPtr CreateEmpty(const std::string& name);
static NActorPtr CreateCamera(const std::string& name = "defaultCamera");
static NActorPtr CreateImageView(const std::string& name);
static NActorPtr CreateLabel(const std::string& name);
static NActorPtr CreateCanvas(const std::string& name);
static NActorPtr CreateButton(const std::string& name);
static NActorPtr CreatePanel(const std::string& name);
static NActorPtr CreateGroup(const std::string& name);
static NActorPtr CreateSlider(const std::string& name);
static NActorPtr CreateInputField(const std::string& name);
static NActorPtr CreateGifView(const std::string& name);
static NActorPtr CreateScrollBar(const std::string& name);
static NActorPtr CreateScrollView(const std::string& name);
static NActorPtr CreateSpherome(const std::string& name);
static NActorPtr CreateModelActor(const std::string& name, const NGeomMeshPtr& mesh);
static NActorPtr CreateLight(const std::string& name, const NLightType& type = eLT_DirectionalLight);
描述: 使用CreateEmpty接口可以创建空物体控件;
使用CreateCamera接口可以创建相机控件;
使用CreateImageView接口可以创建UIImage控件;
使用CreateLabel接口可以创建UI文本控件;
使用CreateCanvas接口可以创建2D画布控件;
使用CreateButton接口可以创建UI按钮控件;
使用CreatePanel接口可以创建UIPanel控件;
使用CreateGroup接口可以创建UI组控件;
使用CreateSlider接口可以创建UI进度条控件;
使用CreateInputField接口可以创建UI输入框控件;
使用CreateGifView接口可以创建UI动图控件;
使用CreateScrollBar接口可以创建UI滑块控件;
使用CreateScrollView接口可以创建UI可滑动布局控件;
使用CreateSpherome接口可以创建天空盒控件;
使用CreateModelActor接口可以创建模型控件;
使用CreateLight接口可以创建灯光控件;

