Runtime Level Design

9656492--1374275--upload_2024-2-21_14-27-6.png

Not necessary change colors, but I want to have wider lines.

I see. Itā€™s not currently available. I will add it in the next update.

I am currently dealing with a cooler issue on my system and I if I enter playmode my cpu temp goes to 90-100 degrees. I will send it for repair tomorrow. So it will take a bit of time, but once I get the issue fixed, I will be able to implement and test.

Thank you,
Andrew

Hello,

Thank you for contacting me :slight_smile:

You need to have programming knowledge to work with this plugin. Can you tell me what you intend to use it for? If you are looking for simply editing levels inside the Unity Editor, please send me an e-mail at octamodius@yahoo.com

Cheers,
Andrew

Thanks! If it possible to get the code before updating here, that would be nice!
Good luck with your pc!

ok thanks for your reply, at least I have the freedom of implementing it myself:smile:

Hi Andrew, I emailed you yesterday. Let me know if you didnā€™t get it. Thank you sir!

Hi there,

I received your e-mail. :slight_smile: Sorry for the delay.

1 Like

Hi Andrew,

I have just started getting the snap to grid side of things working and have found out that the grid needs to be visible for grid snapping to work, fairly logical I would say. My use-case though, I donā€™t need the grid visible at all, so for now have just made the grid color transparent. This works fine but was wondering if there is a better way, or could you point me to where in the code I could perhaps change the grid snapping to not require the grid being visible (if thatā€™s even possible)?

thanks either way and best wishes

John

Hello,

This arrangement was intentional. the Is visible toggle acts more like an active toggle. And the alpha value controls visibility but keeps the grid functional.

However, if you change that if you like. In the RTScene file, you will find the following function:
9843489--1416435--code.png

If you comment the first line:
if (!RTSceneGrid.Get.Settings.IsVisible) return null;

You will be able to snap to the grid even if you uncheck the Is visible toggle.

Hope this helps,
Andrew

Thanks so much Andrew.

Hi There,
I have built a new DB and a UI to drag items into the scene. It all works well but when I let go of the mouse (
OnPointerUp), the newly created gameObject is still attached to the mouse. When I make the new prefab, I call
RTObjectSelection.Get.BeginObjectToObjectSnapSession(); and everything works as expected and it moves around with the cursor. But my pointer is still down. When I let go of the mouse, the new prefab is not released. What I am hoping to do is call a native method that would leave the item where it is and fully selected when I release the mouse button. Can you think of a Method I could call or a variable I could change to release the mouse from the new object? I apologize if that is not clear. Let me know if you need more details.

Thanks in advance.

By the way, I am getting the callback of OnPointerUp() from the drag-in function in the UI. So I just need to know what I can call to release the mouse from the prefab yet keep it selected.

Hello,

I have added a function to allow you to release the prefab from the snap session. You can call it like so:
RTObjectSelection.Get.EndManipSession();

Please send me an e-mail at octamodius@yahoo.com and I will send you the updated package.

Cheers,
Andrew

Hi Andrew,
Thanks for the custom edit. I sent you an email a few minutes ago. Thanks again.

Hello, When an object deletion is undone - is there an event that is called? I am maintaining a list of objects and need to restore that one in the list.

Hello,

I believe the following should do the trick:

  1. Create a handler for the Undo event which operates on the objects which were restored:
// OnUndoEnd implementation
void OnUndoEnd(IUndoRedoAction action)
{
     if (action is DeleteSelectedObjectsAction)
     {
         var selectedObjects = RTObjectSelection.Get.SelectedObjects;
         // ... Do something with selected objects (these are the objects which were deleted)
     }
}
  1. Create a handler for the RDLApp.Initialized event and register it:
void OnAppInitialized()
{
    // Register the UndoRedo handler created earlier
    RTUndoRedo.Get.UndoEnd += OnUndoEnd;
}

// Somewhere in an Awake function, register the Initialized handler
void Awake()
{
    RLDApp.Get.Initialized += OnAppInitialized;
}

This should work. What remains to be done is to establish the logic that goes inside the OnUndoRedo function.

Hope this helps,
Andrew

1 Like

Thanks for the reply.

I noticed something while in play mode. If I click on an object in the game view, the object and any childeren are highlighted and I can press the F key to focus on that object.

If i use RTObjectSelection.Get.SetSelectedObjects(objectList, false); to select the same object, I am not able to use the F key to focus in on that object. I would like the behavior to be the same whether the object is selected by a mouse click or by code (actually clicking on a list item and then having itā€™s onselectionChanged method trigger the code). Suggestions?

On another topic I am also using

    private void OnSceneSelectionChanged(ObjectSelectionChangedEventArgs args)
    {
        if (args.ObjectsWhichWereSelected.Count > 0)
        {
            TreeView.SelectedItem = args.ObjectsWhichWereSelected[0];
        }
    }

The objects which are in the selected list only seem to return objects that had a meshfilter? I am only really interested in working with the topmost (parent) game object of each glb model that was added to a scene which only has a transform and some supplementary scripts added to it. Is there as setting or configuration option which would ignore all child objects and only let me work with the root game object for each scene object?

Update: If i add empty to the default criteria

image

or even just set Empty as the only criteria, then the top most object does appear in [0] but it is very hard now to select anything unless I get very close to the object.

Update2: If selected items could be restricted to be children of a ObjectGroupDb entry that would also be helpful. I would also still only be interested in selecting the parent object.

Hello,

One way to solve this would be to write this code in the Initialize handler:

ObjectSelectEntireHierarchy.Get.SetActive(true);

This will select the entire hierarchy of objects (not only the parent). So itā€™s not exactly what you are looking for, but it is closer.

You can also use the PreSelectCustomize event to detect process the objects which are about to be selected and select the parent instead. More info can be found here.

It should work either way, regardless of how objects are selected. You may have selected objects which have no volume and the camera is not able to focus on them.

EDIT: Ok, Iā€™ve just read your reply again and you mentioned that the same group of objects can be selected when clicked but not when using the API. I will look into it.

EDIT: Just tried this out. Works in my case, you may have clicked on the Unity UI (outside the game view) and the game view lost focus. Therefore the F key no longer worked. The game view has to have focus when using the hotkeys.