Download

Scripting a new Layout

This is my first topic in this forum, I’d better introduce myself a little bit before to get into my problem :stuck_out_tongue:

Hello everyone, my name’s Rick and I am a Digital Humanities postgraduate student from Italy.I just started working on my final project with the Unreal Engine, and so far I only managed to learn how to cry in three new languages! I am not new to programming, I have been coding with both scripting and programming languages for more than six years now, but this is the first time I am really using C++ for a something that goes beyond a school project. I have worked a lot with Unity and C# recently, but as soon as I installed Visual Studio, I realized that these two software share so little that I will have to re-learn everything from scratch.

Going back to my final project, my goal is to develop a plugin that will help Museums and Private foundations to organize exhibitions, galleries and every possible type of context where they will exhibit their heritage, by simulating it in VR before they actually create the physical space. To do that, I am planning to simplify the original UE layout by removing some of the default tabs and adding some custom spaces where I will punt some default assets such as a working projector, chairs, walls, some different materials, and other stuff. I will also try to implement some basic features such as a basic crowd manager, a navigation system, or an avatar guide that will bring the users around the exhibition, but this second phase hasn’t been planned yet.

That said, I came here looking for some advice about the first step. There are some tutorials and videos about how to extend the editor interface, but so far I haven’t found anything about how to remove elements from the default layout by script. As far as I understood (and I might be wrong), there is one class called FGlobalTabmanager that handles the current interface. Using the Widget Reflector, I also noticed that every tab group is created from the SDockingTabStack class. Putting these two things together, i tried to find a way to collect the open stacks, to close them one by one. Reading the API, I found out that the FTabManager class, from which the Global Manager inherits, has a protected function GetAllStacks, but at this point I really got stucked. Even before to write any parameter inside the function, Visual Studio told me that I couldn’t access that function because it was inaccessible. I tried to access any protected function from FTabManager, but the response was always the same. I even tried something like:


FName name = FGlobalTabmanager::Get().Get().ActiveLayoutName;

But the response is always the same. The static variable ActiveLayoutname is inaccessible. Why? FGlobalTabmanger inherits from FTabManager and is set as friend, I also get it from the TSharedRef instance… I must’ve missed something, but what? Do you have any idea of what am I doing wrong?

That said, I am not even sure that fixing this mistake would bring me anywhere, as it doesn’t return anything.

Looking at the UE source code, I found out that the TabManager class has an Array of SDockingAreas called DockAreas, but I couldn’t manage to access it in any way. I know I am asking a lot, and probably the answer is something I won’t be able to fully understand at the moment, but I really need some help, at least a clue, about where to look at.

Up :stuck_out_tongue: I still need help, sorry guys