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