Skip to content

NActorManager

NActorManager静态类,主要用于集中管理Actor的生命周期、创建、销毁和各种功能。它的主要目的是简化Actor的管理,避免在游戏中直接重复地操作Actor,而是通过统一的管理方式来控制和优化Actor的实例化与销毁。

接口名称返回值接口含义
CreateActorNActorPtr可以创建对象控件
CreateActorWithComponentNActorPtr可以创建对象控件
DestroyActorvoid可以销毁对象控件
CreateEmptyNActorPtr可以创建空物体控件
CreateCameraNActorPtr可以创建相机控件
CreateImageViewNActorPtr可以创建UIImage控件
CreateLabelNActorPtr可以创建UI文本控件
CreateCanvasNActorPtr可以创建2D画布控件
CreateButtonNActorPtr可以创建UI按钮控件
CreatePanelNActorPtr可以创建UIPanel控件
CreateGroupNActorPtr可以创建UI组控件
CreateSliderNActorPtr可以创建UI进度条控件
CreateInputFieldNActorPtr可以创建UI输入框控件
CreateGifViewNActorPtr可以创建UI动图控件
CreateScrollBarNActorPtr可以创建UI滑块控件
CreateScrollViewNActorPtr可以创建UI可滑动布局控件
CreateSpheromeNActorPtr可以创建天空盒控件
CreateModelActorNActorPtr可以创建模型控件
GetActorNActorPtr获取对象控件
GetActorsByTagNActorList获取对象标签
GetActorsByLayerNActorList获取对象层级
GetNActorsNActorList获取多个对象控件
CreateLightNActorPtr可以创建灯光控件
CreateEventSystemNActorPtr可以创建事件控件
AddActorbool添加对象控件
AddActorsint添加对象控件

创建控件

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的名称以及挂载到脚本组件。

代码示例:

cpp
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是递归添加所有子控件
描述:通过上述接口统一管理控件的添加与销毁。

代码示例:

cpp
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接口可以获取场景中所有控件列表。

代码示例:

cpp
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接口可以创建灯光控件;