Search Unity

Unity SpriteShape Preview Package

Discussion in '2D Experimental Preview' started by rustum, Mar 19, 2018.

Thread Status:
Not open for further replies.
  1. Venkify

    Venkify

    Unity Technologies

    Joined:
    Apr 7, 2015
    Posts:
    244
    @Discipol Here is the runtime equivalent :


    public class ForceGenerator : MonoBehaviour
    {
    private bool forceGenerateOnce = true;
    void OnGUI()
    {
    var sc = GetComponent<SpriteShapeController>();
    var sr = GetComponent<SpriteShapeRenderer>();
    if (sr != null)
    {
    if (!sr.isVisible && forceGenerateOnce)
    {
    sc.BakeMesh();
    UnityEngine.Rendering.CommandBuffer rc = new UnityEngine.Rendering.CommandBuffer();
    var rt = RenderTexture.GetTemporary(256, 256, 0, RenderTextureFormat.ARGB32);
    Graphics.SetRenderTarget(rt);
    rc.DrawRenderer(sr, sr.sharedMaterial);
    Graphics.ExecuteCommandBuffer(rc);
    Debug.Log("SpriteShape Generated");
    forceGenerateOnce = false;
    }
    }
    }
    }


    The above should work on recent versions of the package.
     
  2. kyuskoj

    kyuskoj

    Joined:
    Aug 28, 2013
    Posts:
    31
    SpriteShape (3.0.5) makes Edge Collider 2D like this. Same points at first.
    That makes it difficult to get a normal value.

    upload_2019-10-4_16-20-54.png
     
    Discipol likes this.
  3. Venkify

    Venkify

    Unity Technologies

    Joined:
    Apr 7, 2015
    Posts:
    244
    This definitely looks like a bug. Kindly file a bug report and we will take a look asap.
     
  4. Cobra98

    Cobra98

    Joined:
    Nov 23, 2013
    Posts:
    8
    Everything works great in the editor, but when I build to android none of the Sprite Shapes (Sprite Shape Renderer) are visible. traditional (Sprite Renderer) sprites display correctly.

    I tried about everything I can think of, with no luck:
    -Tried different shaders.
    -Added directional light.
    -Tried building to Android 32-bit mono and Android 64-bit IL2CPP.

    I'm using Unity 2019.3.0b6 and 2D SpriteShape 3.0.5.
     
  5. Cobra98

    Cobra98

    Joined:
    Nov 23, 2013
    Posts:
    8
    Problem solved! I forgot to add a Profile to the Sprite Shape Controller. Now are things working fine on android.

    I have been waiting many years for this built-in feature, there've been a couple bumps along the way but that's expected for something this early in development. Keep up the great work.
     
    Discipol and Venkify like this.
  6. jeffweber

    jeffweber

    Joined:
    Dec 17, 2009
    Posts:
    573
    I'm getting an error that seems to present itself when I make my SpriteShape to large.

    I have a simple SpriteShape triangle with a profile set.

    If I keep the triangle small all is good. But, if I use Edit Spline and make the triangle bigger I start to get the following error. (Note: the triangle vertices when this happened are: (50,291), (-101,71), (203,67)

    Detail is set to low quality.

    This only happens if the profile is set.

    The error:
    Screen Shot 2019-10-06 at 5.33.43 AM.png

    Is there a limit to how large a SpriteShape can be? I use them for my backgrounds which can have a large "z" value so they need to be large.
     
    Discipol likes this.
  7. Venkify

    Venkify

    Unity Technologies

    Joined:
    Apr 7, 2015
    Posts:
    244
    SpriteShape Generator uses 16 bit Index buffer and supports up to 65535 vertices since it takes less memory and bandwidth. However based on the info above, it looks like the shape contains points that are quite far apart. Can you please try adding intermediate points.and see if this fixes the issue ? If not, kindly submit a bug report with a simple repro. Will take a look asap.
     
    jeffweber likes this.
  8. jeffweber

    jeffweber

    Joined:
    Dec 17, 2009
    Posts:
    573
    Created a bug with sample project.
    http://fogbugz.unity3d.com/default.asp?1189739_m5bcqono4pbup6h4
     
  9. tweetyleaf

    tweetyleaf

    Joined:
    Oct 8, 2019
    Posts:
    1
    I am quite new to unity and creating school project at the moment using sprite shape.
    My question is: How do I animate sprites that are created into the scene using sprite shape?

    (For example animating lava sprite that is "bended" using sprite shape).

    Thanks for your answers in advance!
     
  10. TheAnosmic

    TheAnosmic

    Joined:
    Sep 9, 2015
    Posts:
    4
  11. GigaRoid

    GigaRoid

    Joined:
    Oct 7, 2013
    Posts:
    35
    I'm using it, and everything works fine except for this. The sprite of the path shifts a little whenever I add a point or remove a point or both simultaneously at runtime. I'm fairly certain this isn't my code. Is this an intended effect, or is it something that needs to be corrected? Either way, I'm currently trying to find a way to correct it myself, but I wouldn't mind a little help.
     

    Attached Files:

  12. doctorpangloss

    doctorpangloss

    Joined:
    Feb 20, 2013
    Posts:
    240
    On macOS 10.14.6 and Unity 2019.2, I can't delete anchor points by hitting either Delete on my keyboard or Fn + Delete. Surely I'm not the only person on Earth using Sprite Shape on a mac?
     
  13. doctorpangloss

    doctorpangloss

    Joined:
    Feb 20, 2013
    Posts:
    240
    @Venkify my issue with being unable to delete path points on a macOS device is a legit one. Your error is here:

    In PathEditor.cs you use string command names:

    Code (CSharp):
    1.             var m_RemovePointAction1 = new CommandAction(kDeleteCommandName)
    2.             {
    3.                 enable = (guiState, action) => { return GetSelectedPointCount() > 0; },
    4.                 onCommand = removePoints
    5.             };
    6.  
    7.             var m_RemovePointAction2 = new CommandAction(kSoftDeleteCommandName)
    8.             {
    9.                 enable = (guiState, action) => { return GetSelectedPointCount() > 0; },
    10.                 onCommand = removePoints
    11.             };
    But after debugging, OnGUI events only ever come with key codes:

    (GUISystem.cs ln 112):



    Observe command name is an empty string.
     
  14. DanielTanBK

    DanielTanBK

    Unity Technologies

    Joined:
    Aug 20, 2019
    Posts:
    3
    Hi @doctorpangloss, have you tried using Command + Delete instead to delete the Sprite Shape path points?
     
  15. tomraegan

    tomraegan

    Joined:
    Mar 28, 2016
    Posts:
    98
    SpriateShape feedback:

    I hope the dev from Ferr2D gets some credit, because SpriteShape seems to be built on its back. Having said that, it's a brilliant package. The snap to grid is particularly useful for neatness. The setup is a breeze and having colliders so easy to add...well, you've done a terrific job. Just wanted to say thanks.
     
  16. Venkify

    Venkify

    Unity Technologies

    Joined:
    Apr 7, 2015
    Posts:
    244
    Pebbl3s, midsummer and BTStone like this.
  17. ElnuDev

    ElnuDev

    Joined:
    Sep 24, 2017
    Posts:
    287
    I'm having an issue with the rendering of SpriteShape objects. I have a bunch of procedurally generated asteroids that are using SpriteShape and a camera following a player-controlled spaceship. For some reason, the asteroids only appear when the camera gets within a certain distance. Even stranger, if I do not maximize the game view and leave the scene view open the problem goes away. I have built the project to WebGL and the problem is still there. Any thoughts? Thanks in advance! P.S. I'm using LWRP with Unity 2019.2.11f1 and SpriteShape 2.1.0.
     
  18. ElnuDev

    ElnuDev

    Joined:
    Sep 24, 2017
    Posts:
    287
    I've only found one thing that will fix the issue - turning on Gizmos for some reason. I don't have any custom Gizmo code. :confused:
     
  19. Venkify

    Venkify

    Unity Technologies

    Joined:
    Apr 7, 2015
    Posts:
    244
    Please check the post : https://forum.unity.com/threads/spriteshape-preview-package.522575/page-9#post-5022122
    Just add that MonoBehavior to the procedural generated spriteshape GameObject. This should fix the issue.
     
    ElnuDev likes this.
  20. ElnuDev

    ElnuDev

    Joined:
    Sep 24, 2017
    Posts:
    287
  21. Venkify

    Venkify

    Unity Technologies

    Joined:
    Apr 7, 2015
    Posts:
    244
    For dynamically/procedural generated/instantiated SpriteShapes, this enforces tessellation/mesh generation even if the Object is not visible.
     
    ElnuDev likes this.
  22. ElnuDev

    ElnuDev

    Joined:
    Sep 24, 2017
    Posts:
    287
    Ok, that makes sense! Thanks. So in a post-preview version of SpriteShape it won't be necessary anymore, right?
     
  23. tosiabunio

    tosiabunio

    Joined:
    Jun 29, 2010
    Posts:
    110
    I'm trying to use sprite shape to emulate AO effect. Although the shape is visible in the scene window, it is not rendered in camera. What am I doing wrong? I'm using 2.1.0 version of the package.

     
  24. Venkify

    Venkify

    Unity Technologies

    Joined:
    Apr 7, 2015
    Posts:
    244
    Looks like an issue with ordering (check sorting order and z values). Could you please post a simple repro project? Will take a look asap.
     
  25. tosiabunio

    tosiabunio

    Joined:
    Jun 29, 2010
    Posts:
    110
    A small repro project attached.
     

    Attached Files:

  26. Venkify

    Venkify

    Unity Technologies

    Joined:
    Apr 7, 2015
    Posts:
    244
    Thanks fore the repro-project.
    In the sample scene, RockShadow GameObject's position was at (-67, 6, -2154.477). Hence in Game-mode/Runtime it was culled.

    Set the Z to 0 and this should resolve the issue.

    FixZ.gif
     
    Last edited: Nov 11, 2019
    tosiabunio likes this.
  27. ElnuDev

    ElnuDev

    Joined:
    Sep 24, 2017
    Posts:
    287
    I'm having another issue with SpriteShape. I want my SpriteShape to have a solid black fill, so I created a solid black 4x4 texture and imported it into Unity, setting the wrap mode to "Repeat." Next I dragged the texture into the fill texture parameter of the SpriteShape profile. It worked, but now I have these strange artifacts on the edges of my shape:



    Any thoughts on how to fix this? Thanks in advance!
     
  28. ElnuDev

    ElnuDev

    Joined:
    Sep 24, 2017
    Posts:
    287
    P.S. It seems to only happen if my fill offset is negative.
     
  29. Storm4_

    Storm4_

    Joined:
    Mar 2, 2016
    Posts:
    7
    Hi, a small suggestion here. Whenever I deselect a Sprite Shape game object, Snapping toggle goes back to false and I have to turn it on again every time. I wish there was an option to make it default to true.
     
    midsummer likes this.
  30. ElnuDev

    ElnuDev

    Joined:
    Sep 24, 2017
    Posts:
    287
    Quick question. Since the
    spline
    parameter of the
    SpriteShapeController
    component is read-only, how can one copy the
    spline
    of one
    SpriteShapeController
    to another through script, including all spline data? Thanks in advance!
     
  31. BTStone

    BTStone

    Joined:
    Mar 10, 2012
    Posts:
    1,121
    Hey unity,

    I'll tag some of the devs, hoping some of you might respond :)

    @Venkify @rustum @DanielTanBK

    I just would like to address the state of UX:

    Last year I posted some feedback on specific issues:
    https://forum.unity.com/threads/spriteshape-preview-package.522575/page-5#post-4032916

    Now some of those have been addressed, which is great. Some haven't and I'd like to know if those will be added anytime

    1) change the color from selected nodes - that yellow is barely visible, change it to something more distinctive like blue, especially to make it more distinguishable from the white non-selected node points
    (or at least give the option to change them ourselves)

    2) please give the option to actually show the indices of all the nodes themselves in the scene view, the indices could then be displayed around the nodes and why not also showing the index of the selected node in the inspector as read-only. This would be useful to work with the Scripting API so one could immediately see if the code is doing what it should do with the desired index/node. This is also possible in Ferr2D.

    3) the node points are too small and it kinda needs more precision to select one. If you don't want to set the size yourself, maybe allow to set the size of the points in the preferences?

    4) in order to delete a node point I have to select a node point and hit CMD/CTRL+DELETE, which is the same command to delete basically anything in Unity, like the selected gameobject. I always fear I might delete the whole Shape-Gameobject, especially since the selected yellow node is barely distinguishable from the non-selected white points.
    Sure there's Undo...but yeah, why not another shortcut.

    5) There is still no way to add a node point outside the shape, I only can put nodes along the line between two points, never outside of them: why?


    These UX issues have been almost a year old.

    Another UX issue only some months old:
    https://forum.unity.com/threads/spriteshape-preview-package.522575/page-8#post-4775345

    6) There is still no way to offset the Fill-Texture by X and Y seperately.


    That's it for now :)
     
    Storm4_ and Venkify like this.
  32. Betzalel

    Betzalel

    Joined:
    Dec 3, 2017
    Posts:
    19
    Hi! great job on this package guys! its come a long way since its start and the latest corner improvements have taken it to the next level!
    i Would like to submit some feedback and suggestions for features/function for consideration that I believe would be universally beneficial. If anything I mention is already implemented please excuse me for not seeing it so far.

    1- the option to have multiple corner sprites just like selecting the main edge sprite index
    2- the option to control offset on non adaptive uv's
    3- the option to add gradients over fills and edges
    4- the option to have corners adapt to changes in node sizes (instead of just disappearing)
    5- the option to still have corners active next to curved nodes
    6- the option to lock segments
    7- the option to have adaptive AND non adaptive uv's on same priteshape (per node)
    8- a node list in the inspector panel that reveals (editable) info about each node such as its number id, corner setting,
    sprite index, offset, size etc... the node number ID corresponding to number gizmos in the scene window next to the nodes to quickly edit nodes in the inspector.

    hope this is received well!
    Cheers and keep up the good work!
     
    Storm4_, BTStone and Venkify like this.
  33. Surmoi

    Surmoi

    Joined:
    Aug 9, 2013
    Posts:
    5
    We tried recently to use this package with colliders, to easily create elements the character could ride on. My designer is loving it, it was very easy for him to do what he needed, well done!

    But there's a quite a catch right now, we have a freeze the first time such shape become visible on Android. Profiler shows that SpriteShapeController.OnWillRenderObject is taking sometimes up to 40ms to run on my Nexus 5X! Mostly waiting for a job to complete.

    I disabled the autoupdate of the collider, but it's not enough.

    Are there any plan for an optimization plan ? or is there a way to avoid this ? (Maybe by splitting a large shape into smaller ones would help ?)

    PS: Using Preview9-2.0.0 in Unity 2019.1.5f1
     
    Last edited: Jan 8, 2020
  34. pastaluego

    pastaluego

    Joined:
    Mar 30, 2017
    Posts:
    63
    I believe that that's no longer an issue in the latest version.
     
  35. Surmoi

    Surmoi

    Joined:
    Aug 9, 2013
    Posts:
    5
    I can't use the last version without upgrading Unity as well. But I've found a workaround for now, having an invisible Shape2D on screen at the load of my game, so that the freeze of the initialization is done during my loading screen and not during play time the first time you encounter it.
     
  36. Venkify

    Venkify

    Unity Technologies

    Joined:
    Apr 7, 2015
    Posts:
    244
    Thanks for the feedback. We will fix this in the next release.
     
    Storm4_ and midsummer like this.
  37. Venkify

    Venkify

    Unity Technologies

    Joined:
    Apr 7, 2015
    Posts:
    244
    Please take a look at the sample script (ConformingSpline.cs) that ships with SpriteShape Extras. This works for Editor mode. For such functionality in Runtime, please refer to the following sample script that does the same :

    Code (CSharp):
    1. using System.Collections;
    2. using System.Collections.Generic;
    3. using UnityEngine;
    4. using UnityEngine.U2D;
    5.  
    6. #if UNITY_EDITOR
    7. using UnityEditor;
    8. #endif
    9.  
    10. // Demo Script Usage:
    11. //   When you want multiple SpriteShapes to share a common Spline,
    12. //   attach this script to the secondary objects you would like to
    13. //   copy the Spline and set the ParentObject to the original object
    14. //   you are copying from.
    15.  
    16. [ExecuteInEditMode]
    17. public class ConformingSplineRuntime : MonoBehaviour
    18. {
    19.  
    20.     public GameObject m_ParentObject;
    21.     private int hashCode;
    22.     private static float sfHigh = 100000.0f;
    23.  
    24.     // Use this for initialization
    25.     void Start()
    26.     {
    27.  
    28.     }
    29.  
    30.     // Update is called once per frame
    31.     void Update()
    32.     {
    33.         if (m_ParentObject != null)
    34.         {
    35.             hashCode = CopySpline(m_ParentObject, gameObject, hashCode);
    36.         }
    37.     }
    38.  
    39.     private static void CopyPoint(Spline parentSpline, Spline mirrorSpline, int pi, int mi)
    40.     {
    41.         mirrorSpline.SetPosition(mi, parentSpline.GetPosition(pi));
    42.         mirrorSpline.SetTangentMode(mi, parentSpline.GetTangentMode(pi));      
    43.         mirrorSpline.SetLeftTangent(mi, parentSpline.GetLeftTangent(pi));
    44.         mirrorSpline.SetRightTangent(mi, parentSpline.GetRightTangent(pi));
    45.         mirrorSpline.SetSpriteIndex(mi, parentSpline.GetSpriteIndex(pi));
    46.         mirrorSpline.SetCorner(mi, parentSpline.GetCorner(pi));
    47.         mirrorSpline.SetHeight(mi,parentSpline.GetHeight(pi));
    48.     }
    49.  
    50.     private static int CopySpline(GameObject src, GameObject dst, int hashCode)
    51.     {
    52.  
    53.         var parentSpriteShapeController = src.GetComponent<SpriteShapeController>();
    54.         var parentSpline = parentSpriteShapeController.spline;
    55.         var parentSplinePointCount = parentSpline.GetPointCount();
    56.         if (parentSpline.GetPointCount() > 2)
    57.         {
    58.  
    59.             var mirrorSpriteShapeController = dst.GetComponent<SpriteShapeController>();
    60.             var mirrorSpline = mirrorSpriteShapeController.spline;
    61.             var mirrorSplinePointCount = mirrorSpline.GetPointCount();
    62.  
    63.             // Ensure the point count matches. Also create valid points if need be.
    64.             for (int i = mirrorSplinePointCount - 1; i >= 2; --i)
    65.                 mirrorSpline.RemovePointAt(i);
    66.             for (int i = 2; i < parentSplinePointCount; ++i)
    67.                 mirrorSpline.InsertPointAt(2, new Vector3(i * sfHigh, i * sfHigh, i * sfHigh));
    68.  
    69.             for (int i = 0; i < parentSplinePointCount; ++i)
    70.                 CopyPoint(parentSpline, mirrorSpline, i, i);
    71.  
    72.             mirrorSpline.isOpenEnded = parentSpline.isOpenEnded;
    73.             mirrorSpriteShapeController.RefreshSpriteShape();
    74.         }
    75.         return hashCode;
    76.      
    77.     }
    78.  
    79. }
    80.  
     
  38. Venkify

    Venkify

    Unity Technologies

    Joined:
    Apr 7, 2015
    Posts:
    244
    Thanks again for the feedback. We will try to address them in the upcoming releases especially the ones that can be controlled as user settings.
     
    BTStone likes this.
  39. Venkify

    Venkify

    Unity Technologies

    Joined:
    Apr 7, 2015
    Posts:
    244
    The recent versions generate most of the SpriteShape Geometry and Collision data in C# Jobs and can take advantage of Burst if its is installed through PackageManager. Could you please let us know the version of SpriteShape package you are using currently ?
     
  40. Surmoi

    Surmoi

    Joined:
    Aug 9, 2013
    Posts:
    5
    I'm using Preview9-2.0.0 in Unity 2019.1.5f1
    I tried using Burst and it indeed made it much more acceptable! Thanks :)
     
  41. leonid_b

    leonid_b

    Joined:
    Feb 19, 2019
    Posts:
    1
    Hello, I'm trying to change the Sprite Variant Index related to a corner that has been passed by the player, in runtime. To created some kind of effect that the Passed area has been infected. And also how to get the number of all corners?
    Any ideas how this is done?
    Thank you in advance!:)
     
  42. Digital_Seven

    Digital_Seven

    Joined:
    Aug 20, 2015
    Posts:
    1
    So I'm trying out SpriteShape and I'm having a couple of hangups. I've been fiddling with this for a while and haven't found a solution.

    A1: The only way to change which sprite is being rendered is to have a node. Is there no way to have it sample multiple sprites for an edge?
    A2: The only way to fix this compression issue is to disable Adaptive UV, but then you have issues with sprites not hitting edges right. Lose-lose?

    B: Why is my corner bending when the top edge is not?

    C: I'm confused about why my edge isn't going under the corner.
    upload_2020-1-23_11-33-32.png

    I'm a little frustrated with this feature right now, I'm trying to find solutions that don't require manual editing/placement on every corner in the game.
     
  43. Venkify

    Venkify

    Unity Technologies

    Joined:
    Apr 7, 2015
    Posts:
    244
    We really appreciate your feedback and suggestions. We will consider them in the upcoming releases.
     
  44. Venkify

    Venkify

    Unity Technologies

    Joined:
    Apr 7, 2015
    Posts:
    244
    @leonid_b I am assuming you mean variant for corner sprite. Sprite Variant only works for Edge Sprites. Only one sprite can be assigned for each Corner type as of now (we will add variant support for corners in the future).
    Do you mean the control-point indices for corners ? As long as corners are enabled and the neighbor points are linear, the point is considered to be a corner and a corner sprite is used to connect the neighbor edges.
     
  45. Venkify

    Venkify

    Unity Technologies

    Joined:
    Apr 7, 2015
    Posts:
    244
    As of now, a control-point is needed to change sprite (either through variant or angle range). Could you please tell us your use-case ?

    Could you please provide more info ? or a screenshot ?

    Could you please provide a simple repro ? That does look like a bug that we did see before and have fixed. Also what version of SpriteShape are you using now ?

    Again looks related to the issue above. Please provide a sample repro case. I believe this has been fixed unless the Corner sprite has transparent pixels at the bottom.

    We have fixed quite a few issues related to corners in recent builds. (Please take a look at https://forum.unity.com/threads/spriteshape-preview-package.522575/page-9#post-5139287) We will take a look asap. Please do post with a sample repro case or a Fogbugz case.
     
  46. TimBur

    TimBur

    Joined:
    Jan 17, 2013
    Posts:
    20
    I'd like to do some procedural, physics-based, stretch-and-squash with SpriteShapes. Specifically, I have a square-ish sprite, and I want to distort that sprite in realtime, as needed. I have made a GameObject with a SpriteShapeRenderer and a SpriteShapeController. I'm using the "StretchUV" option in the SpriteShapeController, and a StretchTiling of 1. And I have written a MatchCorners script that updates the SpriteShape spline control points during each FixedUpdate. While the spline control points are moving in the way I'd like, there is something wrong with the rendering.

    As the script moves the spline control points away from their starting locations, the fill sprite stretches and distorts. It's as if the UV mapping isn't updating along with the position of the vertices. When I pause the game, and switch to the Scene view, I can see that there is some sort of rectangular widget around my SpriteShape. Oddly, while the width of the rectangular widget dynamically changes to match the size of my SpriteShape, the height does not. Rather, the top edge of the rectangle is fixed at the starting location - so that the rectangle stretches in much the same way as my sprite.

    Using Unity 2019.2.18 with SpriteShape 2.1.0

    Code (CSharp):
    1. using System.Collections;
    2. using System.Collections.Generic;
    3. using UnityEngine;
    4. using UnityEngine.U2D;
    5.  
    6. public class MatchCorners : MonoBehaviour
    7. {
    8.     public Transform[] CornerObjects;
    9.  
    10.     private SpriteShapeController spriteShapeController;
    11.     // Start is called before the first frame update
    12.     void Start()
    13.     {
    14.         spriteShapeController = GetComponent<SpriteShapeController>();
    15.     }
    16.  
    17.     void FixedUpdate()
    18.     {
    19.         for (int pointID = 0; pointID < 4; pointID++)
    20.             spriteShapeController.spline.SetPosition(pointID, CornerObjects[pointID].position);
    21.         //spriteShapeController.BakeMesh(); //Doesn't help
    22.         //spriteShapeController.RefreshSpriteShape(); //Doesn't help
    23.         //spriteShapeController.UpdateSpriteShapeParameters(); //Doesn't help
    24.        
    25.     }
    26. }
    27.  
     
  47. Venkify

    Venkify

    Unity Technologies

    Joined:
    Apr 7, 2015
    Posts:
    244
    @TimBur I did a quick check and please find a demo attached here. However I am using 3.0.8 with 2019.3



    Could you please provide more info ?
     
  48. rustum

    rustum

    Unity Technologies

    Joined:
    Feb 14, 2015
    Posts:
    74
Thread Status:
Not open for further replies.
unityunity