@@ -15,6 +15,7 @@ MMethod* UICanvas_PostDeserialize = nullptr;
|
||||
MMethod* UICanvas_OnEnable = nullptr;
|
||||
MMethod* UICanvas_OnDisable = nullptr;
|
||||
MMethod* UICanvas_EndPlay = nullptr;
|
||||
MMethod* UICanvas_ParentChanged = nullptr;
|
||||
|
||||
#define UICANVAS_INVOKE(event) \
|
||||
auto instance = GetManagedInstance(); \
|
||||
@@ -43,6 +44,7 @@ UICanvas::UICanvas(const SpawnParams& params)
|
||||
UICanvas_OnEnable = mclass->GetMethod("OnEnable");
|
||||
UICanvas_OnDisable = mclass->GetMethod("OnDisable");
|
||||
UICanvas_EndPlay = mclass->GetMethod("EndPlay");
|
||||
UICanvas_ParentChanged = mclass->GetMethod("ParentChanged");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -133,6 +135,14 @@ void UICanvas::EndPlay()
|
||||
Actor::EndPlay();
|
||||
}
|
||||
|
||||
void UICanvas::OnParentChanged()
|
||||
{
|
||||
// Base
|
||||
Actor::OnParentChanged();
|
||||
|
||||
UICANVAS_INVOKE(ParentChanged);
|
||||
}
|
||||
|
||||
void UICanvas::OnEnable()
|
||||
{
|
||||
UICANVAS_INVOKE(OnEnable);
|
||||
|
||||
@@ -539,6 +539,16 @@ namespace FlaxEngine
|
||||
Setup();
|
||||
}
|
||||
|
||||
internal void ParentChanged()
|
||||
{
|
||||
#if FLAX_EDITOR
|
||||
if (RenderMode == CanvasRenderMode.ScreenSpace && _editorRoot != null && _guiRoot != null)
|
||||
{
|
||||
_guiRoot.Parent = HasParent ? _editorRoot : null;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
internal void OnEnable()
|
||||
{
|
||||
#if FLAX_EDITOR
|
||||
@@ -587,6 +597,8 @@ namespace FlaxEngine
|
||||
|
||||
internal void EditorOverride(SceneRenderTask task, ContainerControl root)
|
||||
{
|
||||
if (_editorTask == task && _editorRoot == root)
|
||||
return;
|
||||
if (_editorTask != null && _renderer != null)
|
||||
_editorTask.CustomPostFx.Remove(_renderer);
|
||||
if (_editorRoot != null && _guiRoot != null)
|
||||
|
||||
@@ -24,6 +24,7 @@ protected:
|
||||
// [Actor]
|
||||
void BeginPlay(SceneBeginData* data) final override;
|
||||
void EndPlay() final override;
|
||||
void OnParentChanged() override;
|
||||
void OnEnable() override;
|
||||
void OnDisable() override;
|
||||
void OnTransformChanged() final override;
|
||||
|
||||
Reference in New Issue
Block a user