Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.

Grid Framework [scripting and editor plugins]

Discussion in 'Assets and Asset Store' started by hiphish, Jul 24, 2012.

  1. hiphish

    hiphish

    Joined:
    Nov 13, 2010
    Posts:
    626
    Weird, it works for me. Here is a minimal example script, attached to an empty GameObject:
    Code (csharp):
    1. using UnityEngine;
    2. using GridFramework.Grids;
    3.  
    4. public class Derp : MonoBehaviour {
    5.    public HexGrid _grid;
    6.  
    7.    void Start () {
    8.        var PrevPos = _grid.CubicToWorld(new Vector4(0, -1f, 1f, 0f));
    9.        Debug.Log("PrevPos = "+PrevPos);
    10.        var PrevPos2 = _grid.WorldToCubic(PrevPos);
    11.        Debug.Log("PrevPos2 = "+PrevPos2);
    12.    }
    13. }
    I get different numbers because you didn't tell me what the Transform of your grid is. If you tell me its position and rotation I might be able to reproduce the error.
     
  2. makanan

    makanan

    Joined:
    Jan 29, 2015
    Posts:
    9
    Strange indeed, I ran your code but I'm still getting the NaN values.
    Here are the transform values for the grid: (sorry for not including them before)
    position: 0, 0.05, 0
    rotation -90, 0, 0
    scale 1, 1, 1

    the Hexgrid side mode is pointed with a radius of 5 and a depth of 1.401298e-45
    computed properties:
    height = 8.660254
    width = 10
    side = 7.5

    With a Rectangle Renderer, shift up and
    -10 ,10
    -10, 10
    0, 0

    I had the Derp component is on the same gameobject as the hexgrid and the rectangle renderer, so I tried putting it on a separate empty game object but same result.

    Last culprit I could think of is I am on Unity version 2017.1.1f1.
     
  3. hiphish

    hiphish

    Joined:
    Nov 13, 2010
    Posts:
    626
    OK, now I can reproduce it. The issue is the depth, the value 1.401298e-45 is actually Mathf.Epsilon, the smallest float-value that is not zero. It seems that number is so small that dividing by it is like dividing by zero, which produces the NaN you are getting. Is there a reason you are using such a small depth? With a depth of ε there is practically no space left between the layers.
     
  4. makanan

    makanan

    Joined:
    Jan 29, 2015
    Posts:
    9
    Ahh I think that come from my old attempts at making a 2d grid, but you're absolutely right I guess even with no layers for a 2D grid that value should be 1 ... Thank you very much for your help Hiphish!
     
    hiphish likes this.
  5. hiphish

    hiphish

    Joined:
    Nov 13, 2010
    Posts:
    626
    The value can be anything really, just not the absolute minimum. I usually just leave it at 1 and ignore the third coordinate.
     
  6. makanan

    makanan

    Joined:
    Jan 29, 2015
    Posts:
    9
    Hey Hiphish, me again ...

    I am trying to get the world position of each tile around 1 given tile(in the code below "StartTile") using the exact same grid as we discussed previously.
    To so do I did a switch with an enum; heres the code:

    Code (CSharp):
    1. public enum ToMoveTo{ Up1, Down1, LeftUp1, LeftDown1, RightUp1, RightDown1 }
    2.  
    3. switch(Direction){
    4.         case ToMoveTo.Up1: return myGrid.CubicToWorld(new Vector4(StartTile.x, StartTile.y - 1f, StartTile.z + 1f, 0f));
    5.         case ToMoveTo.Down1: return myGrid.CubicToWorld(new Vector4(StartTile.x, StartTile.y + 1f, StartTile.z - 1f, 0f));
    6.         case ToMoveTo.LeftUp1: return myGrid.CubicToWorld(new Vector4(StartTile.x - 1f, StartTile.y, StartTile.z + 1f, 0f));
    7.         case ToMoveTo.LeftDown1: return myGrid.CubicToWorld(new Vector4(StartTile.x - 1f, StartTile.y + 1f, StartTile.z, 0f));
    8.         case ToMoveTo.RightUp1: return myGrid.CubicToWorld(new Vector4(StartTile.x + 1f, StartTile.y - 1f, StartTile.z, 0f));
    9.         case ToMoveTo.RightDown1: return myGrid.CubicToWorld(new Vector4(StartTile.x + 1f, StartTile.y, StartTile.z - 1f, 0f));
    10.         default: return Vector3.zero;
    11.         }
    I though that would work but i'm getting a small offset each time, am I going completely wrong at this?
     
  7. hiphish

    hiphish

    Joined:
    Nov 13, 2010
    Posts:
    626
    Are you sure that StartTile is in cubic grid coordinates as well? BTW, the code is more compact if instead of adding values to the coordinates you add two vectors:
    Code (csharp):
    1. public enum ToMoveTo{ Up1, Down1, LeftUp1, LeftDown1, RightUp1, RightDown1 }
    2.  
    3. switch(Direction){
    4.    case ToMoveTo.Up1        : return myGrid.CubicToWorld(StartTile + new Vector4( 0f, -1f,  1f, 0f));
    5.    case ToMoveTo.Down1      : return myGrid.CubicToWorld(StartTile + new Vector4( 0f,  1f, -1f, 0f));
    6.    case ToMoveTo.LeftUp1    : return myGrid.CubicToWorld(StartTile + new Vector4(-1f,  0f,  1f, 0f));
    7.    case ToMoveTo.LeftDown1  : return myGrid.CubicToWorld(StartTile + new Vector4(-1f,  1f,  0f, 0f));
    8.    case ToMoveTo.RightUp1   : return myGrid.CubicToWorld(StartTile + new Vector4( 1f, -1f,  0f, 0f));
    9.    case ToMoveTo.RightDown1 : return myGrid.CubicToWorld(StartTile + new Vector4( 1f,  0f, -1f, 0f));
    10.    default: return Vector3.zero;
    11. }
    (I like to align my code as well, but that's not everyone's cup of tea. I guess I'm weird in that regard)
     
  8. makanan

    makanan

    Joined:
    Jan 29, 2015
    Posts:
    9
    Hey Hiphish, all sorted for now. The last issue was coming from me trying to use a raycast hit.point for position checking. I am now just using it for id checking and then using id'ed object's actual positions for calculations.
    Thanks again for the help!
     
  9. vonchor

    vonchor

    Joined:
    Jun 30, 2009
    Posts:
    183
    I spent a bit of time trying to see if anyone had reported this message:

    Script 'Grid' has the same name as built-in Unity component.
    AddComponent and GetComponent will not work with this script.

    I have no doubt that this is due to the new Grid component in 2017.2.

    I was sort of surprised that I couldn't find a reference to this issue here

    Version in use 2.1.6 from 11 sept
     
    Last edited: Nov 1, 2017
  10. hiphish

    hiphish

    Joined:
    Nov 13, 2010
    Posts:
    626
    Grid is an abstract class, so you cannot add it anyway. Naming conflicts can be avoided by changing the name of the imported symbol:
    Code (csharp):
    1. using GridFramework.Grids;
    2. using GFGrid = GridFramework.Grids.Grid;
    Now you can refer to it as GFGrid.
     
  11. vonchor

    vonchor

    Joined:
    Jun 30, 2009
    Posts:
    183
    Yes, I noticed that it's an abstract class. It is odd/confusing to see this though when you import the plugin.
     
  12. wagenheimer

    wagenheimer

    Joined:
    Jun 1, 2018
    Posts:
    299
    This is a nightmare! I could not make it work! Please update the asset with a Fix.
     
  13. hiphish

    hiphish

    Joined:
    Nov 13, 2010
    Posts:
    626
    Hello. Can you please be more specific as to what problems you are having? Are you using C# or UnityScript?

    A renaming `using` is the proper way of handling name collisions in C#, this is not a hack or anything. I could change the name of the `Grid` class, but this would break compatibility for all existing users. Grid Framework is older than Unity's own `Grid` class, so this issue is something new that has cropped up, it wasn't forseeable in the past.
     
  14. wagenheimer

    wagenheimer

    Joined:
    Jun 1, 2018
    Posts:
    299
    The "using" trick does not work for me, nor only renaming it to GFGrid!

    To make it work I had to rename it to GFGrid, plus remove it from the current Namespace it was using.
     
  15. hiphish

    hiphish

    Joined:
    Nov 13, 2010
    Posts:
    626
  16. CraigGraff

    CraigGraff

    Joined:
    May 7, 2013
    Posts:
    44
    @hiphish Could you please add undo to your editors? It is simple to do and would save your users much annoyance.
    Just add Undo.RecordObject(target, "<EditorName> edit"); to the OnInspectorGUI.

    Code (CSharp):
    1.     public override void OnInspectorGUI() {
    2.             Undo.RecordObject(target, "Polar grid edit");
    3.             RadiusFields();
    4.             SectorFields();
    5.             DepthFields();
    6.  
    7.             // etc.
    8.  
    9.     }
    10. //----------------- OR-------------------//
    11.  
    12.  
    13.     public abstract class RendererEditor<T> : UnityEditor.Editor where T: GridRenderer {
    14. #region  Protected variables
    15.         /// <summary>
    16.         ///   Reference to the target renderer.
    17.         /// </summary>
    18.         protected T _renderer;
    19. #endregion  // Protected variables
    20.  
    21. #region  Callback methods
    22.         public override void OnInspectorGUI() {
    23.  
    24.             Undo.RecordObject(target, "Edit " + typeof(T).Name);
    25.             InspectorFields();
    26.          
    27.             if (GUI.changed)
    28.                 EditorUtility.SetDirty(_renderer);
    29.         }
    30. }
    31.  
    32.  
     
    Last edited: Aug 24, 2018
    hiphish likes this.
  17. hiphish

    hiphish

    Joined:
    Nov 13, 2010
    Posts:
    626
    You are right, thank you for the code snippet. I'll see to it that I implement it this coming week. I have to admit that I suck at UI programming, either I am too stupid for it or the documentation is lacking, because I always find myself fighting Unity.
     
  18. CraigGraff

    CraigGraff

    Joined:
    May 7, 2013
    Posts:
    44
    This.
     
  19. hiphish

    hiphish

    Joined:
    Nov 13, 2010
    Posts:
    626
    Phew, for a moment there I thought you were saying that my documentation was lacking :) The notification email did not show who the quote was from.
     
  20. hiphish

    hiphish

    Joined:
    Nov 13, 2010
    Posts:
    626
    @CraigGraff

    Quick update: I haven't forgotten about this issue, it has taken me a while to get my development setup working on Linux, but I now have a different problem: the undo works fine, but the display of the grids does not change.

    To provide some background: the grids are drawn in the editor using OnDrawGizmos, which runs every frame, wasting time re-computing the same lines every single time. I have a good setup so that the renderers get notified when the grid's properties change, but when the user clicks Undo the grid is not really modified using the official properties, it is replaced with a previously recorded object. Thus none of the events get triggered and the renderer still displays the old grid.
     
  21. Zincord

    Zincord

    Joined:
    Dec 21, 2013
    Posts:
    14
    Hello,
    I'm developing a game where the player moves around a cube.



    I have no idea how to make this move :(
    I was wondering if the Grid Framework would help me in developing this?
     
  22. hiphish

    hiphish

    Joined:
    Nov 13, 2010
    Posts:
    626
    Hello

    It depends on how you have structured your game. I am going to assume you have some "go right" method to move your character one step to the right, then the wrapping logic can be implemented as follows:
    Code (csharp):
    1. RectGrid grid;  // the grid we use
    2. int minX = 0, maxX = 3;  // wrap around beyond these
    3. int minY = 0, maxY = 3;  // same for Y axis
    4.  
    5. var position = grid.WorldToGrid(player.transform.position);
    6. position.x += 1;  // Move one unit in X-direction
    7. if (position.x > maxX || position.x < minX) {
    8.     if (position.y > minY) {
    9.         position.y -= 1;  // move one square down
    10.     } else {
    11.         position.y += 1;  // move one square up
    12.     }
    13. }
    14. var targetPosition = grid.GridToWorld(position);
    15. PlayMovementAnimation(targetPosition);
    You first convert the player's world position to grid coordinates, move one unit to the right and correct the position up or down if necessary. In the end you convert the result back to world coordinates and use that to play your movement animation. You can use something like iTween to generate the animation at runtime once you have the start and end points.

    In fact, I would recommend writing your entire game logic in grid coordinates and only converting to world coordinates for playing the animation.
     
  23. Zincord

    Zincord

    Joined:
    Dec 21, 2013
    Posts:
    14
    The movement will be "click and move", and will have obstacles in the way, there will be faces of the same cube that the character can not walk ...
    In your example, it would convert the point to the center of the cube, right?
    How could I get the center of the cube face?

    (sorry for my english) rsrs
     
  24. hiphish

    hiphish

    Joined:
    Nov 13, 2010
    Posts:
    626
    Just to make sure we are on the same page: obstacle avoidance and pathfinding are not part of Grid Framework; it can help you with its coordinate system, but it cannot know how you want to design your game. Every game is different in that regard.

    No, you would have to add half a unit before converting back to world coordinates, but that's trivial:
    Code (csharp):
    1. var targetPosition = grid.GridToWorld(position + 0.5f * Vector3.one);
    If you write your entire game logic in grid coordinates you don't have to. A coordinate triple like (2, 3, 1) means whatever you want it to mean. When converting to world space add the offset you need; if you want the world position to be the bottom center of a box you wold add (0.5, 0.5, 0) (half a unit in X- and Y-direction, zero units in Z-direction). if you want to convert world coordinates to grid coordinates do the same, except you subract that shift times the grid's spacing:
    Code (csharp):
    1. var shift = Vector3(.5f, .5f, 0f);
    2. var gridPosition = grid.WorldToGrid(transform.position - shift * grid.Spacing);
    3. var worldPosition = grid.GridToWorld(gridPosition + shift);
     
  25. CraigGraff

    CraigGraff

    Joined:
    May 7, 2013
    Posts:
    44
    @hiphish Sorry I didn't see this for so long. If you are still looking into this, try taking a look at this. You can just subscribe to your redraw method to Undo.undoRedoPerformed and it should redraw at appropriate times.

    Code (CSharp):
    1.    void OnEnable()
    2.     {
    3.         Undo.undoRedoPerformed += Redraw;
    4.     }
    5.  
    6.  
    7.     void OnDisable()
    8.     {  
    9.         Undo.undoRedoPerformed -= Redraw;
    10.     }
     
  26. hiphish

    hiphish

    Joined:
    Nov 13, 2010
    Posts:
    626
    It seems that OnEnable and OnDisable only work while the game is running:
    Code (csharp):
    1. void OnEnable() {
    2.     Debug.Log("OnEnable");
    3. }
    This will only print to the console when the game starts, but not when I instantiate or enable the component in the editor.
     
  27. hiphish

    hiphish

    Joined:
    Nov 13, 2010
    Posts:
    626
    Scratch that, I just found ExecuteInEditMode. I need to do a bit more testing, but this seems to be what was missing to get everything going smoothly.
     
  28. Belfis

    Belfis

    Joined:
    Jan 23, 2015
    Posts:
    5
    hello, i cant get playmaker actions in my project i create file smcs.rsp (define: GRID_FRAMEWORK_PLAYMAKER) and get error

    error CS2001: Source file `define:' could not be found
    error CS2001: Source file `GRID_FRAMEWORK_PLAYMAKER' could not be found


    and Warrning

    Using obsolete custom response file 'smcs.rsp'. Please use 'mcs.rsp' instead.
    UnityEditor.Scripting.ScriptCompilation.EditorCompilationInterface:TickCompilationPipeline(EditorScriptCompilationOptions, BuildTargetGroup, BuildTarget)


    How i can fix it? and use grid framework with playmaker?
     
  29. hiphish

    hiphish

    Joined:
    Nov 13, 2010
    Posts:
    626
    Hello

    Did you write the line as
    Code (csharp):
    1. -define:GRID_FRAMEWORK_PLAYMAKER
    with the leading minus character? And have you made sure the file extension is really ".rsp" and not something like ".rsp.txt", because operating systems tend to hide the true file extension by default. You can call the file "mcs.rsp", see if that makes a difference. The old name "smcs.rsp" should still work, but it's better to stay current of course.
     
  30. hiphish

    hiphish

    Joined:
    Nov 13, 2010
    Posts:
    626
  31. hiphish

    hiphish

    Joined:
    Nov 13, 2010
    Posts:
    626
    The examples on the website are working again
    http://hiphish.github.io/grid-framework/news/2019/01/15/examples-working-again/
     
  32. hiphish

    hiphish

    Joined:
    Nov 13, 2010
    Posts:
    626
  33. stansison

    stansison

    Joined:
    Feb 20, 2016
    Posts:
    28
    Hi I just bought this asset and its looking perfect for what I need. I'm still currently looking over the documentation. Is there an example of using the grid for "tokens" for different sizes? Like single unit token, 4 unit token and 9 unit tokens?
     
  34. hiphish

    hiphish

    Joined:
    Nov 13, 2010
    Posts:
    626
    Hello. Usually the approach is to store the position of an object as a Vector3, so (depending on how your game works) I would suggest using an array of Vector3:
    Code (csharp):
    1. Vector3[] position;
    If you then have an object that takes up 3x3 tiles you would store those tiles in the array:
    Code (csharp):
    1. position = new Vector3[9] {Vector3(0,0,0), Vector3(1,0,0), Vector3(2,0,0),
    2.                            Vector3(0,1,0), Vector3(1,1,0), Vector3(2,1,0),
    3.                            Vector3(0,2,0), Vector3(1,2,0), Vector3(2,2,0)};
    The advantage of this would be that you could use objects of any size and shape. You could for example have a "wall" that is made of a chain of single-tile positions:
    Code (csharp):
    1. ...........XXX............
    2. ........XXX...............
    3. .....XXX..................
    4. ..XXX.....................
    This would be a wall drawn by the user by dragging the cursor across the screen, like building a wall in a strategy game.
     
  35. stansison

    stansison

    Joined:
    Feb 20, 2016
    Posts:
    28
    Thanks for the quick reply. I will do that. Doing a build for a previous version with your component/plugin installed, however I am getting this error. I have not made any changes yet/implemented anything Grid related.

    Assets/Plugins/GridFramework/Grids/Grid.cs(2,26): error CS0234: The type or namespace name 'Undo' does not exist in the namespace 'UnityEditor' (are you missing an assembly reference?)

    This error only comes up when building for release, here is the specific line in the code.
    Using Unity 2018.3.8

    "using Undo = UnityEditor.Undo;"
     
    Last edited: Apr 3, 2019
  36. hiphish

    hiphish

    Joined:
    Nov 13, 2010
    Posts:
    626
    Yes, that is an issue that has been fixed in the upcoming release, but it's still waiting for approval. In the meantime you can apply the changes yourself: In the file 'Assets/Plugins/GridFramework/Grids/Grid.cs' wrap up the line that says
    Code (csharp):
    1. using Undo = UnityEditor.Undo;
    such that it says
    Code (csharp):
    1. #if UNITY_EDITOR
    2. using Undo = UnityEditor.Undo;
    3. #endif  // UNITY_EDITOR
    and
    Code (csharp):
    1.                void OnEnable() {
    2.                        Undo.undoRedoPerformed += this.OnUndo;
    3.                }
    4.                void OnDisable() {
    5.                        Undo.undoRedoPerformed -= this.OnUndo;
    6.                }
    needs to say
    Code (csharp):
    1.                void OnEnable() {
    2. #if UNITY_EDITOR
    3.                        Undo.undoRedoPerformed += this.OnUndo;
    4. #endif  // UNITY_EDITOR
    5.                }
    6.  
    7.                void OnDisable() {
    8. #if UNITY_EDITOR
    9.                        Undo.undoRedoPerformed -= this.OnUndo;
    10. #endif  // UNITY_EDITOR
    11.                }
    Next change the file 'Assets/Plugins/GridFramework/Renderers/GridRenderer.cs': Replace
    Code (csharp):
    1.  
    2. #if UNITY_EDITOR
    3. using Undo = UnityEditor.Undo;
    4. #endif  // UNITY_EDITOR
    with
    Code (csharp):
    1. using UnityEditor;
    Wrap up
    Code (csharp):
    1.                void Awake() {
    2.                        Undo.undoRedoPerformed += this.UpdatePoints;
    3.                        Register();
    4.                        UpdatePoints();
    5.                }
    6.                
    7.                void OnDestroy() {
    8.                        Undo.undoRedoPerformed -= this.UpdatePoints;
    9.                        Unregister();
    10.                }
    11.  
    12.                void OnEnable() {
    13.                        Undo.undoRedoPerformed += this.UpdatePoints;
    14.                        UpdatePoints();
    15.                }
    16.  
    17.                void OnDisable() {
    18.                        Undo.undoRedoPerformed -= this.UpdatePoints;
    19.                }
    into
    Code (csharp):
    1.                void Awake() {
    2. #if UNITY_EDITOR
    3.                        Undo.undoRedoPerformed += this.UpdatePoints;
    4. #endif  // UNITY_EDITOR
    5.                        Register();
    6.                        UpdatePoints();
    7.                }
    8.                
    9.                void OnDestroy() {
    10. #if UNITY_EDITOR
    11.                        Undo.undoRedoPerformed -= this.UpdatePoints;
    12. #endif  // UNITY_EDITOR
    13.                        Unregister();
    14.                }
    15.  
    16.                void OnEnable() {
    17. #if UNITY_EDITOR
    18.                        Undo.undoRedoPerformed += this.UpdatePoints;
    19. #endif  // UNITY_EDITOR
    20.                        UpdatePoints();
    21.                }
    22.  
    23.                void OnDisable() {
    24. #if UNITY_EDITOR
    25.                        Undo.undoRedoPerformed -= this.UpdatePoints;
    26. #endif  // UNITY_EDITOR
    27.                }
    The problem is that the undo code does not exist when building for release, so we have to instruct Unity to only compile those lines of code when running in the editor. That's how it sipped through the cracks into a release.
     
  37. stansison

    stansison

    Joined:
    Feb 20, 2016
    Posts:
    28
    No worries. I've implemented the changes and it works like a charm!
     
    hiphish likes this.
  38. hiphish

    hiphish

    Joined:
    Nov 13, 2010
    Posts:
    626
    Grid Framework version 2.1.8 released
    http://hiphish.github.io/grid-framework/news/2019/05/20/release-2.1.8/
     
    crafTDev likes this.
  39. kpetkov

    kpetkov

    Joined:
    Mar 3, 2018
    Posts:
    12
    I have this issue, when press play all is working perfectly I can drag some objects on grid reposition them, save position etc. All working perfectly fine. But, when I try to build the project: first i face this issue with Undo error described above, after apply those fixes the bug was gone and build succeeded. But on freshly made build I can't drag my objects with the mouse anymore. Any ideas how to make it work? On play mode there are no errors to fix. It just works. And on build don't
     
    Last edited: Jun 24, 2019
  40. hiphish

    hiphish

    Joined:
    Nov 13, 2010
    Posts:
    626
    The build failure should not be happening. Are sure you are using the current version 2.1.8?
     
  41. kpetkov

    kpetkov

    Joined:
    Mar 3, 2018
    Posts:
    12
    @hiphish Ok, I was with 2.1.7 I did the update but result is the same, in playmode inside unity all works fine. Build is successfull and there are no errors neither in playmode nor build. But can do nothing in build. I mean build is wokirng but cannot drag any object with mouse, and therefore I cannot check if save load functionality is working
     
    Last edited: Jun 24, 2019
  42. hiphish

    hiphish

    Joined:
    Nov 13, 2010
    Posts:
    626
    Sorry for the slow reply, I'm on vacation and the computer I have with me did not have Unity installed on it. What version of Unity are you using? I just tried it on my machine and I can move objects in the editor view and in play mode while it's running. Can you please describe your problem in more detail?
     
  43. kpetkov

    kpetkov

    Joined:
    Mar 3, 2018
    Posts:
    12
    Hi @hiphish I am using Unity 2018.2.0f2. The goal I wanted to achieve with your beautiful grid framework was to place, move and store positions of some objects. The goal is achieved and during playmode in Unity all works as expected. But when I build the project and play the build the expected behaviour is not present anymore. No object can be moved, and no other funcionality can be tested. If you don't mind I can send you my project just to test it out, and offcourse if you can find what the problem is. The most interesting here is that there are no errors in Unity during play mode. And the build also does not give any error indications. Thank you
     
  44. hiphish

    hiphish

    Joined:
    Nov 13, 2010
    Posts:
    626
    I think now I understand. That is really odd, all that is missing at build time is related to Unity's editor undo, everything else should work as expected. Please try the following: create a new blank project, import Grid Framework and try to build one of the examples that involve moving. Then tell me if those are working as expected. You can send me your project if you want to, but I would like to know first if my own examples work correctly for you so I know where to start digging.

    EDIT I just tried the 3D Snapping example on GNU/Linux and it is working for me
     
    Last edited: Jun 27, 2019
  45. kpetkov

    kpetkov

    Joined:
    Mar 3, 2018
    Posts:
    12
    I tried one of your examples with grid snapping and it works fine, even it is in my project as part of your examples. So it is definetely odd for me too. I also build it for linux and I am running Unity inder Linux. Please tell me where I can send you a download link to the archived project.
     
  46. hiphish

    hiphish

    Joined:
    Nov 13, 2010
    Posts:
    626
    If you can upload it to Dropbox or something similar and send me the link via PM that would be ideal.
     
  47. kpetkov

    kpetkov

    Joined:
    Mar 3, 2018
    Posts:
    12
    Please check your alerts :) Do you have the link?
     
  48. hiphish

    hiphish

    Joined:
    Nov 13, 2010
    Posts:
    626
    Yes, we'll continue this conversation via PM from now.
     
  49. DrEvizan

    DrEvizan

    Joined:
    Jun 26, 2017
    Posts:
    6
    I'm sure this is buried somewhere in this forum post, but I could find it anywhere. Is there some kind of documentation for setting the framework up with Playmaker?
     
  50. hiphish

    hiphish

    Joined:
    Nov 13, 2010
    Posts:
    626
    Sorry, this flew right under my radar. In the user manual ("Help -> Grid Framework Documentation" from within the Unity editor) there is in the sidebar the entry "Playmaker support". It explains how to enable the Playmaker actions in Unity.