Search Unity

Runtime Level Design

Discussion in 'Assets and Asset Store' started by XGT08, Jan 17, 2016.

  1. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    Hi there,

    No, this is not currently possible. For meshes and sprites, it will use the actual mesh or sprite even if the mesh/sprite renderer is disabled. For lights and particle systems, it will use a light or particle system icon.

    EDIT: If this is a feature that is critical to your project, then please write down the exact details of what type of customization you would need and I will see what I can do.
     
  2. xkinginthecastlecastlex

    xkinginthecastlecastlex

    Joined:
    Nov 7, 2018
    Posts:
    93




    Hi,
    thanks for your kind offer to customize RLD!
    Yes, in my case this would be a fundamental feature as I use prefabs where the mesh is disabled.

    Option A:
    The best solution would be to be able to select a custom icon for different prefabs. For Example: to differentiate which icon should be displayed the specific prefab could have an individual tag. I think it would make sense to integrate that into RTScene like so:

    Screenshot showcasing "MyTag1" (with selected icon):

    https://ibb.co/NsZWSHV

    Screenshot showcasing "MyTag2" (icon not selected yet):
    https://ibb.co/6Px5xP0

    You can see in the Screenshots above the pulldown - menu would show the available tags: https://ibb.co/9cX3Tys


    Option B:
    an alternative solution would be: there would be just 1 Icon that could be integrated as a custom icom, so all prefabs tagged as "custom" could have this specific icon which could be chosen from RTScene like so: https://ibb.co/YQs48Qv


    Let me know what you think about that

    Many thanks!
     
  3. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    Initially I thought, you were talking about prefab previews. :) Now I realize that you were talking about the icons that are displayed in the scene. Is this correct? If so, a more generic solution would add some runtime overhead. I think it would be best if you could render the icons for those objects yourself somewhere inside a OnRenderObject method since you can make assumptions about the objects that you are working with. I would have to come up with a more generic solution and as I said, it would not be very efficient.

    You could have a look at the OnRenderObject function inside the RTScene class to see how the icons for other entities are rendered and then you could use the icon rendering code to render icons for other types of objects. Let me know if you need any help with the icon rendering code.
     
  4. xkinginthecastlecastlex

    xkinginthecastlecastlex

    Joined:
    Nov 7, 2018
    Posts:
    93

    Hi,

    awesome hint! Thanks! I will check your RTScene Code and let you know if I need any help.

    I have another question:
    is it somehow possible to exclude objects within a prefab to not get influenced when dragging or scaling the prefab?

    So for example I have a window and don´t want the window handle to get stretched, but would like to be able to enlarge the window by keeping the window handle at the same position...

    Is there a way to achieve that with RLD?
     
  5. xkinginthecastlecastlex

    xkinginthecastlecastlex

    Joined:
    Nov 7, 2018
    Posts:
    93


    I just found this post and I think this could be a solution to my previous post, I am just not sure how to achieve your commented code. Do you think your sample from above could be a way to achieve this? If so, could you please be more specific with the comments "Use the saved information to repair the parent child relationships" - not sure how I could achieve this
     
  6. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    I assume the window handles are children of the window? If so, you could create a MonoBehaviour class that implements the IRTTransformGizmoListener interface and attach that to your window hierarchy. Then you can implement the OnTransformed function and inside there force the handles to their original value:
    Code (CSharp):
    1. public class WndHandleScaleConstrint : MonoBehaviour, IRTTransformGizmoListener
    2. {
    3.      private Vector3 _wndHandleScale;
    4.  
    5.      private void Start()
    6.      {
    7.           // Get references to the handle and window objects
    8.           // ...
    9.  
    10.            // Store the original untransformed scale of the handle
    11.           _wndHandleScale = wndHandle.transform.lossyScale;
    12.      }  
    13.  
    14.      public bool OnCanBeTransformed()
    15.      {
    16.      }
    17.  
    18.      public void OnTransformed(Gizmo gizmo)
    19.      {
    20.            if (gizmo.ActiveDragChannel == GizmoDragChannel.Scale)
    21.            {
    22.                    // Assume wndHandle is a game object that references the handle object.
    23.                    // Assume wndGameObject is the window object.
    24.                    // These could be stored as member variables in the Start function.
    25.                    // The idea is to force the wnd handle scale to remain the same. In order to do this,
    26.                    // we detach it from its parent (the window object), set its local scale which now is the world scale, and then attach it as a child again to the window object.
    27.                    wndHandle.transform.parent = null;
    28.                    wndHandle.transform.localScale = _wndHandleScale;
    29.                    wndHandle.transform.parent = wndGameObject;
    30.            }
    31.      }
    32. }
    You can read more about the IRTTransformGizmo interface here.
     
    Last edited: Mar 12, 2019
  7. xkinginthecastlecastlex

    xkinginthecastlecastlex

    Joined:
    Nov 7, 2018
    Posts:
    93

    Awesome! Thank you very much for your help!
     
  8. xkinginthecastlecastlex

    xkinginthecastlecastlex

    Joined:
    Nov 7, 2018
    Posts:
    93
    I would very much appreciate if you have any idea how to solve this:

    I came across the 4gb Scene- limitiation issue and decided to use asset bundles with the unity asset bundle browser, so I created different bundles for my prefabs and was able to reduce the scene-size. After this I imported the prefabs as usual to the RTPrefabLibDb. The object can be placed, but the gizmo´s aren´t appearing, so currently I can´t transform any object. I guess this is related to the asset bundles and I am not sure if RLD is not able to load the asset? (but I am wondering that it´s appearing at all) Do I have to make the assetbundles somehow an instance on scene in order for RLD to be able to use the object selection - or am I missing something else?
     
  9. xkinginthecastlecastlex

    xkinginthecastlecastlex

    Joined:
    Nov 7, 2018
    Posts:
    93

    EDIT:
    in case anybody has the same issue - I fixed it by placing a new RLDPrefabLibDbUi
     
    XGT08 likes this.
  10. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    Frankly I do not have enough experience with Asset Bundles to understand why this is happening, but I am glad you managed to find a solution. Thanks for sharing!
     
  11. xkinginthecastlecastlex

    xkinginthecastlecastlex

    Joined:
    Nov 7, 2018
    Posts:
    93
    sure :)

    is it maybe somehow possible to sort the Prefab library alphabetically?
    It´s a bit annoying to create all prefab libraries from the beginning when a new library needs to be inserted (as the new one is always at the bottom)

    Do you know a way how to fix this?
     
  12. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    I sent you a PM with the updated pack.
     
  13. xkinginthecastlecastlex

    xkinginthecastlecastlex

    Joined:
    Nov 7, 2018
    Posts:
    93
    Awesome! I just integrated it and it works perfectly! Thank you very much!!!

    Is it somehow possible to make prefabs clickable but only from an active library?
    This would enhance the workflow as you wouldn´t be able to accidently click on e.g. scene icons or elements in the background...

    Do you know a way how to achieve that?
     
  14. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    Hi there,

    I am not sure what you mean. If you mean that you would like to be able to stop certain objects from being selected, then you can either assign them to a special layer and use the Selectable layers property in the RTObjectSelection Inspector to exclude that layer from selection.

    Or you can stop specific objects from being selected like so:
    Code (CSharp):
    1. RTObjectSelection.Get.Settings.SetObjectSelectable(gameObject, false);
     
  15. Reddevildragg

    Reddevildragg

    Joined:
    May 19, 2014
    Posts:
    50
    Hi
    Just wondering if there is a way to force the gizmo to refresh what is on the hover state. Currently i have found that modifying the if statement below will always force it
    Code (CSharp):
    1.             //if (canUpdateHoverInfo)
    2.             {
    3.                 _hoveredGizmo = null;
    4.                 _gizmoHoverInfo.Reset();
    5.             }
    however would rather not go and modify the base code. What is happening currently is if the mouse is over one of the gizmos and its highlight, when i open a full screen ui it does not hover, means when i click and and the mouse even over the ui it actually drags the object (even after the mouse has moved off the hover area). My current fix is to cache the selection when the menu opens, deselect everything and then re-select it all when the menu closes. Although this works not the ideal solution as with the semi-transparent parts of the ui you can see the gizmos snap on and off (although not end of the world).

    Any help would be great and thanks in advance :)
     
  16. xkinginthecastlecastlex

    xkinginthecastlecastlex

    Joined:
    Nov 7, 2018
    Posts:
    93

    Hi,
    if I would assign an object to a special layer and use the selectable layers property all of the objects which are assigned to this layer would never be selectable. What I need instead is the ability to recognize which prefab library is currently active, so for example let´s say you have 3 libraries "cubes", "spheres" and "capsules" - if the cubes library is active in the GUI and you have objects from all 3 libraries in your scene at runtime, only objects from the cube library should be able to be selected / transformed etc. by clicking on spheres in the GUI Pulldown-menu all spheres should be clickable, but not cubes and capsules and so on..

    the goal behind this is to enhance the workflow as currently if you for example create a building with a roof and want to edit objects within the building by using a 2D top-down-camera - the roof would still be visible and editing the objects wouldnt be possible without deleting or moving the roof

    Maybe this could be done by using layers. If the layers for example have the same name like in the active library, but then it should be somehow possible to let RLD know that only if an active library is active to make the objects clickable or not..

    I hope I could explain what I mean (if not please let me know if you have any questions)
    Otherwise it would be awesome if you have an idea how to achieve that
     
  17. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    This is not possible I'm afraid. I think in this situation it would be a lot better if you just implement an interface for hiding/showing objects. You can do that by disabling the game objects or their renderers. An automatic solution based on the active prefab library is not possible.
     
  18. xkinginthecastlecastlex

    xkinginthecastlecastlex

    Joined:
    Nov 7, 2018
    Posts:
    93

    Hi there,

    thanks for your respond. Unfortunately this is not what I am looking for as the objects wouldnt be visible at runtime.
    Would it be possible instead to use your code:

    Code (CSharp):
    1. RTObjectSelection.Get.Settings.SetObjectSelectable(gameObject, false);
    2.  
    with something like: if layer = "cubes" than code from above -> to make all object with the layer "cubes" not selectable?
    would you know the solution for this?

    EDIT:
    I guess it should be somehow similar to this thread:
    https://answers.unity.com/questions/179310/how-to-find-all-objects-in-specific-layer.html
     
  19. xkinginthecastlecastlex

    xkinginthecastlecastlex

    Joined:
    Nov 7, 2018
    Posts:
    93
    Hi there,
    would it be possible to modify or create an object-selection-gizmo in order to extrude a mesh at runtime like in this video?:


    So basically it should be possible to mark the mesh where it should be extruded
    It would be awesome if you have any idea regarding this
     
  20. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    This functionality is not provided in RLD and if I were to implement it, I would probably do it as a separate package or as a paid extension.

    However, the pack does allow you to create a move gizmo that works with entities in general (the object move gizmo uses it too).

    Code (CSharp):
    1. MoveGizmo moveGizmo = RTGizmosEngine.Get.CreateMoveGizmo();
    The code above creates a gizmo that doesn't transform anything. However, it can be dragged and generates drag events, so you can implement your mesh triangle/vertex/edge selection functionality and then use the gizmo to manipulate them as needed.

    If you decide to do this, let me know if you want me to get into more details as to how you could listen to the drag events.
     
  21. xkinginthecastlecastlex

    xkinginthecastlecastlex

    Joined:
    Nov 7, 2018
    Posts:
    93

    hey thanks for your fast reply!
    Yes, that sounds good. It would be great if you could provide some more details regarding this
     
  22. DerDicke

    DerDicke

    Joined:
    Jun 30, 2015
    Posts:
    292
    Hey Andrew,
    I want to use RLD or Octave to build maps from complex prefabs containing 20-100 GameObjects each. Think whole rooms or tunnel pieces with lots of detail.

    1.) Would you recommend RLD or Octave? Can any tool handle that?
    2.) In RLD, user seems to construct in PlayMode. How do you save the map during PM?
    3.) In your videos, you are only using prefabs containing one mesh. What about complex prefabs? Do your tools handle object selection in a smart way (selecting the whole prefab, not one inner GameObject like Unity Editor does)?
    4.) Connecting prefabs: Do you only use bounding volume / axis snapping or do you examine the mesh somehow? E.g. if I have a y- cave- part, how can I stick it to other cave parts?

    Thanks.
     
  23. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    Hi there,

    So let's get straight into the questions :)

    1. If you want to design game levels for your game, Octave3D is the way to go. RLD is for people who want to build their own editors or modding tools for their game.
    2. RLD doesn't do any kind of saving. You will need another pack that handles serialization of scene objects etc.
    3. You can use complex hierarchies with more than one mesh. It will work. By default RLD selects the whole prefab (all objects in the hierarchy). But this can be configured.
    4. I guess you are talking about the object to object snap functionality. The algorithm analyzes the mesh vertex data and uses that to build a bunch of snap boxes. Regarding the caves, it should work as long as the caves were designed to be snapped together. But most models should be designed in such a way that they should snap to a grid. So vertex snapping should also work here. Again, it also depends on the models.

    Hope this helps, but let me know if you have more questions.

    Cheers,
    Andrew
     
  24. DerDicke

    DerDicke

    Joined:
    Jun 30, 2015
    Posts:
    292
    Thanks, that was fast!
    On 3.): Can Octave do the same thing or only does this work only with RLD?
    On 4.): 'But most models should be designed in such a way that they should snap to a grid.' Too bad that is not true for many stuff you get on the Asset Store. When I understand correctly, both of your tools will replace Unity vertex snapping by a more comfortable system when models are designed with any sense. How would that work with a y-cave-part? Would I have to find the right angle and rotate cave part to match y-part by hand or can RLD/Octave find the rotation and position by itself?

    Thanks.
     
  25. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    Regarding 3: Yes, Octave3D selects entire hierarchies by default. However, you can change this in the Inspector if you wish to select individual objects.

    Regarding 4: Yes, both tools use this Object-to-Object snapping thingy that works better than Unity's vertex snapping. So Octave3D uses the same thing as RLD (with small differences). All in all, both tools can be used to snap objects together (be it caves, building pieces etc). You have to rotate the objects though. So neither RLD nor Octave do automatic rotation. If the cave as a Y shape and you need to connect it to another Y shape piece, you need to rotate the piece to fit.
     
  26. DerDicke

    DerDicke

    Joined:
    Jun 30, 2015
    Posts:
    292
    Thanks a lot for your answers.
     
  27. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    No problem :)
     
  28. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    Hi there,

    So I am going to post a skeleton script that could serve as the base for your own implementation:
    Code (CSharp):
    1. class MeshMoveGizmo : MonoBehaviour
    2. {
    3.     // The move gizmo used to move verts, triangles, edges (depends on what you need). You could have state   variables to control the entities that get affected. In this example we will use vertices.
    4.     MoveGizmo _moveGizmo;
    5.  
    6.     // The mesh affected by the gizmo
    7.     Mesh _targetMesh;
    8.  
    9.     // The mesh vertices
    10.     Vector3[] _meshVerts;
    11.  
    12.     // A list of indices that represent the indices of the verts that are selected for manipulation
    13.     List<int> _selectedVertIndices = new List<int>();
    14.  
    15.     public void SetTargetMesh(Mesh mesh)
    16.     {
    17.          _targetMesh = mesh;
    18.          _selectedVertIndices.Clear();
    19.          _meshVerts = mesh.vertices;
    20.     }
    21.  
    22.     private void Awake()
    23.     {
    24.         RLDApp.Get.Initialized += OnAppInit;
    25.     }
    26.  
    27.     private void OnAppInit()
    28.     {
    29.         // Create the gizmo and register a handler to the PostDragUpdate event. This event is fired when the gizmo is dragged. And the handler is responsible for applying the drag offset to the mesh verts/edges etc.
    30.         _moveGizmo = RTGizmosEngine.Get.CreateMoveGizmo();
    31.         _moveGizmo.PostDragUpdate += OnGizmoPostDragUpdate;
    32.     }
    33.  
    34.     private void OnGizmoPostDragUpdate()
    35.     {
    36.          // We need to find out the amount of drag which was   applied to the gizmo so that we can apply the drag to the verts/edges/triangles.
    37.         float dragOffset = _moveGizmo.Gizmo.RelativeDragOffset;
    38.  
    39.         // Now use the drag offset to offset the mesh entities.
    40.         // Let's assume you want to offset a bunch of vertices and let's also assume you have a list that stores the indices of the vertices which are selected for manipulation.
    41.         foreach (var vertIndex in _selectedVertIndices)
    42.         {
    43.              // Use the index to get access to the current vertex position, apply the drag offset and store it back again.
    44.               Vector3 vertPos = _meshVerts[vertIndex];
    45.               vertPos += dragOffset;
    46.               _meshVerts[vertIndex] = vertPos;
    47.         }
    48.  
    49.         // After the vertices have been transformed, we need to send them back to the target mesh
    50.         _targetMesh.vertices = _meshVertices;
    51.         _targetMesh.UploadMeshData(false);
    52.     }
    53. }
    You will probably want to take a look here to find more info about gizmo drag information: https://rld.readthedocs.io/en/latest/GizmoDragInfo/

    Again, this is just a skeleton script and will of course need to be extended but it was meant to show you how to register an event handler and extract the drag information. You will have to implement the mesh specific stuff yourself (such as selecting verts, edges or triangles) etc.

    If you have any questions down the road, let me know.
     
  29. GDevTeam

    GDevTeam

    Joined:
    Feb 14, 2014
    Posts:
    90
    Is the Light Weight Render Pipeline suppose to work with RLD? I had to uninstall it to get the gizmos to show on the in-Scene 3D objects again.
     
  30. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    Hi there,

    No, RLD does not support any form of SRP and currently there are no plans to support it.
     
  31. GDevTeam

    GDevTeam

    Joined:
    Feb 14, 2014
    Posts:
    90
    Okay.
     
  32. MetaZhi

    MetaZhi

    Joined:
    Feb 18, 2013
    Posts:
    28
    MeshTree.Build costs about 3~4 seconds when first selecting big meshes, any suggestion to imporve this?
     
  33. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    Reducing the cost is not possible, but what you can do is to move it at app startup by building the tree meshes beforehand:

    Code (CSharp):
    1. // Do this for each mesh (or at least for the larger ones that cause trouble), but do it at startup
    2. var rtMesh = RTMeshDb.Get.GetRTMesh(mesh);
    3. if (rtMesh != null && !rtMesh.IsTreeBuilt) rtMesh.BuildTree();
    You could write this code in an OnInitialized handler which is called after the app is initialized:
    Code (CSharp):
    1.  
    2. private void Awake()
    3. {
    4.     RLDApp.Get.Initialized += OnInitialized;
    5. }
    6.  
     
  34. juliocdep

    juliocdep

    Joined:
    Sep 30, 2010
    Posts:
    30
    Hello,

    I have a small problem, in my project I have a game core scene that is never unloaded, in it I have a pool of objects with a lot of instantiated objects. In the game, when I enter the "Level Editor" I load the scene that contains the RLD, at that point the performance falls drastically. Analyzing, I realized that in RTScene#Update_SystemCall is picking up the game core scene, Is there a configuration to pick up the RLD scene only without manually changing this in the RTScene script?
     
  35. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    Hi there,

    I will have to spend some time to think about how to approach this. I will get back to you when I have a solution.
     
  36. MetaZhi

    MetaZhi

    Joined:
    Feb 18, 2013
    Posts:
    28
    I change Physics mode to Unity Colliders and it seems works fine now.

    Here is another question:
    How to prevent selection clear where click UI elements? I'm working with NGUI.
     
  37. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    I haven't worked with NGUI before. How does NGUI represent the UI elements? Are they game objects?
     
  38. MetaZhi

    MetaZhi

    Joined:
    Feb 18, 2013
    Posts:
    28
    Yes, they are game objects with box colliders.
     
  39. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    Alright, let me think about that. I will implement an API to allow you to configure the system in order to avoid clearing the selection when these objects are clicked. Would it be reasonable to assume that all these objects created by NGUI reside in a specialized layer?
     
  40. AlexSbyshWork

    AlexSbyshWork

    Joined:
    Apr 18, 2019
    Posts:
    1
    Hello! I have a problem:

    1. I grab an object.
    1_gizmo_grab.png

    2. I move the object with the gizmo.
    2_gizmo_move.png

    3. I change the object's transform by code.
    3_change_object_transform.png

    The problem is: the gizmo stays in the wrong position.

    Is there a simple solution to this problem?
     
  41. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    Whenever you change the transform of an object from code, (be it position, rotation, or scale), you should call:
    Code (CSharp):
    1. RTObjectSelectionGizmos.Get.GetGizmoById(ObjectSelectionGizmoId.MoveGizmo).ObjectTransformGizmo.RefreshPositionAndRotation();
     
    AlexSbyshWork likes this.
  42. MetaZhi

    MetaZhi

    Joined:
    Feb 18, 2013
    Posts:
    28
    Yes, they are in UI layer. I hava modified some code in `RTScene.IsAnyUIElementHovered` to implement this.
     
  43. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    RLD will work with the currently active scene (SceneManager.GetActiveScene()). So if your active scene is the one with the object pool, that's the one it will use. Can you try making a call to Scenemanager.SetActiveScene and pass the scene that contains RLD?
     
  44. juliocdep

    juliocdep

    Joined:
    Sep 30, 2010
    Posts:
    30
    Thank you for the response, this solve the problem. But I have other questions:

    - How I can refresh the position for the extrude and box gizmo? For the move, rotation and scale I use gizmo_ObjectTransformGizmo.RefreshPositionAndRotation(); and work well, but for the extrude and box the ObjectTransformGizmo returns null.

    - And how I can restrict the extrude and box gizmo for objects in a particular layer?
     
  45. RedEyeFox

    RedEyeFox

    Joined:
    Jan 8, 2013
    Posts:
    27
    Hello. i have some trouble with the RLD, the problems start when i add a complex mesh to the scene, i don't want this mesh to be used from the RLD but when i select some simple CUBE for example the unity editor get frozen for 5/6minutes and then everything work normal, but if i update the mesh with new data and try to select some random object the game get frozen again for 5/6 minutes or much more if the mesh is bigger with more vertices and triangles, i am sure that i did not select the mesh that causes this problem, there has some script that on object select make some calculation on all meshes in the hierarchy, i am not sure what exactly going on so i can't understand how to ignore that mesh from this calculations that the RLD makes, can you help me with this? , sorry for my bad english, if there is something unclear please let me know.
     
  46. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    Hi there,

    You can change the Physics mode to Unity Colliders in the RTScene object Inspector. Note however, that when using features such as object to object snap or selection grab, the slowdown may still happen because the plugin needs access to the vertex data. So you can do what I describe in this post: https://forum.unity.com/threads/runtime-level-design.380151/page-9#post-4424404
     
  47. code-blep

    code-blep

    Joined:
    Oct 1, 2010
    Posts:
    308
    Edit: Asked question but worked it out. Ignore.
     
    Last edited: May 22, 2019
    XGT08 likes this.
  48. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    Hi there,

    Sorry for the late rely. I did see your question initially, but got stuck with other things and eventually forgot to answer. I don't remember the details, but I am glad t hear it was sorted out.

    Cheers,
    Andrew
     
  49. code-blep

    code-blep

    Joined:
    Oct 1, 2010
    Posts:
    308
    Hi Andrew, no worries. The excellent documentation answered my questions ;)
     
    XGT08 likes this.
  50. Qbasic8

    Qbasic8

    Joined:
    May 22, 2014
    Posts:
    16
    Hey, just want to say great stuff you made here.
    My question: I am making a level editor scene so other employees can do level designs. I want to add a Text UI that shows the transform mode they are in (Rotate, Move, Scale, Duplicate).. Where would I reference which mode the Gizmos are currently using?