Search Unity

Infinite Runner Starter Pack

Discussion in 'Assets and Asset Store' started by opsive, May 23, 2013.

  1. TheJare

    TheJare

    Joined:
    Jul 2, 2013
    Posts:
    2
    I actually found the answer in your documentation thank you.
     
  2. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,128
    Glad you got it figured out!
     
  3. Gametyme

    Gametyme

    Joined:
    May 7, 2014
    Posts:
    618
    Is there a noticeable performance hit using the standard cruve shader vs the diffuse shader on mobile? Is it possible to dynamically change the curve during run time?
     
  4. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,128
    The difference will be the same between Unity's standard shader and a regular diffuse shader. Yes, you can adjust the curve parameters using Material.SetVector
     
    Gametyme likes this.
  5. aaaaabbbbb

    aaaaabbbbb

    Joined:
    Feb 14, 2015
    Posts:
    17
    hi

    i bought your asset 2 years ago. it was great but now this asset got old and is needing a new approach.

    if you can do this asset like subway surfer or something. this asset will be a king. i know you are very good developers and you can do it.

    but you should spend your time with this asset.

    i hope you can do it.

    but thanks everything anyway. already i bought another asset. because to me you lost your power to polish this asset.so sad. but it is true.anyway.
     
  6. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,128
    The infinite runner has recently taken a backseat compared to some of our other assets. We do have some neat plans for this asset, but it is going to take some time to lay the foundation first. The good news is that this asset is extremely feature-rich for an infinite runner so is a great starting point for that genre.
     
  7. Gametyme

    Gametyme

    Joined:
    May 7, 2014
    Posts:
    618
    Any way to get shadows to show on mobile with unity 5? The shadows work in editor but when I build to mobile there's no shadows.
     
  8. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,128
    I am actually surprised the shadows worked at all. I wasn't able to figure out a way to modify the shadow data to apply the curve to it.
     
  9. Gametyme

    Gametyme

    Joined:
    May 7, 2014
    Posts:
    618
    Depends on your settings. If I turn the curve off will shadows work on mobile?
     
  10. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,128
    Yes, then that uses Unity's standard shader
     
    Gametyme likes this.
  11. Gametyme

    Gametyme

    Joined:
    May 7, 2014
    Posts:
    618
    It was the standard shader with curve that I was able to get shadows to work on.
     
  12. Gametyme

    Gametyme

    Joined:
    May 7, 2014
    Posts:
    618
    After changing to the standard shader I still can't get real time shadows to show on iPhone. Haven't tried baked.
     
  13. vladimirdlc

    vladimirdlc

    Joined:
    Jan 26, 2013
    Posts:
    19
    I'm trying to make a long predetermined map, that will always spawn the same route (non-infinite), but supports branching.

    I'm having issues with the generation. I'm setting probabilities as you can see in the attached file, but currently it just spawns a wall in a Both Turn in the face of the player. Any idea why this may be happening?
    Is this the way that I should create a fixed path?

    PD: Also, there is a way to know how long I should set the distance to put one platform in between another? In the videos I've seen is used '14', but in practice I've noticed is not always 14 using the package assets.

    bug.png
     

    Attached Files:

    Last edited: Feb 9, 2016
  14. vladimirdlc

    vladimirdlc

    Joined:
    Jan 26, 2013
    Posts:
    19
    Hi, is there a way in a way to set predefined, what's going to appear in the left or right side of a 'both turn'?
     
  15. Chaz32621

    Chaz32621

    Joined:
    Apr 17, 2015
    Posts:
    199
    I have modified the ObjectSpawnRun some. At the moment currently it is only spawning platforms to the right once. And then straight ahead. Can any one help me on this? And if the player goes right then it keeps spawning them straight ahead from that right turn and never spawns left or right turns again but it does spawn left right turn platforms but straight one as well.
    Here is my modified code.

    Code (CSharp):
    1. public void SpawnObjectRun(bool activateImmediately)
    2.         {  while (platamt < 45)
    3.             {
    4.                 InfiniteObject prevPlatform = infiniteObjectHistory.GetTopInfiniteObject(ObjectLocation.Center, false);
    5.                 Debug.Log(platamt + "straight");
    6.                 Vector3 position = Vector3.zero;
    7.                 if (prevPlatform != null && turnPlatform[(int)ObjectLocation.Center] == null && turnPlatform[(int)ObjectLocation.Right] == null && turnPlatform[(int)ObjectLocation.Left] == null)
    8.                 {
    9.                     int prevPlatformIndex = infiniteObjectHistory.GetLastLocalIndex(ObjectLocation.Center, ObjectType.Platform);
    10.                     position = prevPlatform.GetTransform().position - GetPrevPlatformStartPosition(prevPlatform, prevPlatformIndex, spawnDirection) +
    11.                         platformSizes[prevPlatformIndex].z / 2 * spawnDirection + platformSizes[prevPlatformIndex].y * Vector3.up;
    12.                 }
    13.                 if (turnPlatform[(int)ObjectLocation.Right] != null)
    14.                 {
    15.                     Vector3 turnDirection = turnPlatform[(int)ObjectLocation.Center].GetTransform().right;
    16.                     int prevPlatformIndex = infiniteObjectHistory.GetLastLocalIndex(ObjectLocation.Right, ObjectType.Platform);
    17.                     position = prevPlatform.GetTransform().position - GetPrevPlatformStartPosition(prevPlatform, prevPlatformIndex, turnDirection) +
    18.                                                 platformSizes[prevPlatformIndex].z / 2 * turnDirection + platformSizes[prevPlatformIndex].y * Vector3.up;
    19.                 }
    20.                 if (turnPlatform[(int)ObjectLocation.Left] != null)
    21.                 {
    22.                     Vector3 turnDirection = turnPlatform[(int)ObjectLocation.Center].GetTransform().right;
    23.                     int prevPlatformIndex = infiniteObjectHistory.GetLastLocalIndex(ObjectLocation.Left, ObjectType.Platform);
    24.                     position = prevPlatform.GetTransform().position - GetPrevPlatformStartPosition(prevPlatform, prevPlatformIndex, turnDirection) +
    25.                                                 platformSizes[prevPlatformIndex].z / 2 * turnDirection + platformSizes[prevPlatformIndex].y * Vector3.up;
    26.                 }
    27.                 if (turnPlatform[(int)ObjectLocation.Center] != null)
    28.                 {
    29.                     Vector3 turnDirection = turnPlatform[(int)ObjectLocation.Center].GetTransform().right;
    30.                     int prevPlatformIndex = infiniteObjectHistory.GetLastLocalIndex(ObjectLocation.Center, ObjectType.Platform);
    31.                     position = prevPlatform.GetTransform().position - GetPrevPlatformStartPosition(prevPlatform, prevPlatformIndex, spawnDirection) +
    32.                         platformSizes[prevPlatformIndex].z / 2 * spawnDirection + platformSizes[prevPlatformIndex].y * Vector3.up;
    33.                 }
    34.                 PlatformObject platform = SpawnObjects(ObjectLocation.Center, position, spawnDirection, activateImmediately);
    35.                 PlatformSpawned(platform, ObjectLocation.Center, spawnDirection, activateImmediately);
    36.                 platamt++;
    37.                //Turn Platforms
    38.              
    39.                 if (turnPlatform[(int)ObjectLocation.Center] != null)
    40.                 {
    41.                 Vector3 turnDirection = turnPlatform[(int)ObjectLocation.Center].GetTransform().right;
    42.                 if (turnPlatform[(int)ObjectLocation.Center].rightTurn)
    43.                         {
    44.                         prevPlatform = infiniteObjectHistory.GetTopInfiniteObject(ObjectLocation.Right, false);
    45.                                 if (prevPlatform != null)
    46.                                 {
    47.                                 Debug.Log("if" + platamt);
    48.                                     int prevPlatformIndex = infiniteObjectHistory.GetLastLocalIndex(ObjectLocation.Right, ObjectType.Platform);
    49.                                     position = prevPlatform.GetTransform().position - GetPrevPlatformStartPosition(prevPlatform, prevPlatformIndex, turnDirection) +
    50.                                                 platformSizes[prevPlatformIndex].z/2 * turnDirection + platformSizes[prevPlatformIndex].y * Vector3.up;
    51.                                 }
    52.                                 else if(prevPlatform == null)
    53.                                 {
    54.                             Debug.Log("Else" + platamt);
    55.                                     PlatformObject centerTurn = turnPlatform[(int)ObjectLocation.Center];
    56.                                     int centerTurnIndex = turnIndex[(int)ObjectLocation.Center];
    57.                                     position = centerTurn.GetTransform().position - platformStartPosition[centerTurnIndex].x * turnDirection - Vector3.up * platformStartPosition[centerTurnIndex].y -
    58.                                                     platformStartPosition[centerTurnIndex].z * spawnDirection + centerTurn.centerOffset.x * turnDirection + centerTurn.centerOffset.z * spawnDirection +
    59.                                                     platformSizes[centerTurnIndex].y * Vector3.up;
    60.                                }
    61.  
    62.                                 platform = SpawnObjects(ObjectLocation.Right, position, turnDirection, activateImmediately);
    63.                              
    64.                                 PlatformSpawned(platform, ObjectLocation.Right, turnDirection, activateImmediately);
    65.                                 platamt++;
    66.                     }
    67.                 if (turnPlatform[(int)ObjectLocation.Center].leftTurn)
    68.                 {
    69.                     prevPlatform = infiniteObjectHistory.GetTopInfiniteObject(ObjectLocation.Left, false);
    70.  
    71.                     if (prevPlatform != null)
    72.                     {
    73.                         Debug.Log("if" + platamt);
    74.                         int prevPlatformIndex = infiniteObjectHistory.GetLastLocalIndex(ObjectLocation.Left, ObjectType.Platform);
    75.                         position = prevPlatform.GetTransform().position - GetPrevPlatformStartPosition(prevPlatform, prevPlatformIndex, turnDirection) +
    76.                                     platformSizes[prevPlatformIndex].z/2 * turnDirection + platformSizes[prevPlatformIndex].y * Vector3.up;
    77.                     }
    78.                     else if(prevPlatform == null)
    79.                     {
    80.                         Debug.Log("Else" + platamt);
    81.                         PlatformObject centerTurn = turnPlatform[(int)ObjectLocation.Center];
    82.                         int centerTurnIndex = turnIndex[(int)ObjectLocation.Center];
    83.                         position = centerTurn.GetTransform().position - platformStartPosition[centerTurnIndex].x * turnDirection - Vector3.up * platformStartPosition[centerTurnIndex].y -
    84.                                         platformStartPosition[centerTurnIndex].z * spawnDirection + centerTurn.centerOffset.x * turnDirection + centerTurn.centerOffset.z * spawnDirection +
    85.                                         platformSizes[centerTurnIndex].y * Vector3.up;
    86.                     }
    87.  
    88.                     platform = SpawnObjects(ObjectLocation.Left, position, turnDirection, activateImmediately);
    89.                     PlatformSpawned(platform, ObjectLocation.Left, turnDirection, activateImmediately);
    90.                     platamt++;
    91.                 }
    92.                 }
    93.             }
    94.         }
     
  16. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,128
    @vladimirdlc - sorry I missed your questions earlier, did you get them solved?

    There's a lot of code there so it's tough to go through. My recommendation would be to set a breakpoint at the start and go through it line by line. The SpawnObjects code should spawn the object based on the object location.
     
  17. Chaz32621

    Chaz32621

    Joined:
    Apr 17, 2015
    Posts:
    199

    Does it not spawn the platforms as well?? The SpawnObjectsRun. My problem is I am switching it to make it where the player moves instead of the surroundings. Any suggestions on how I can go about doing that?
     
  18. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,128
    SpawnObjectRun does spawn the objects. In terms of making the player move, what's the purpose behind that? It may be easier to solve the issue in a different way.
     
  19. Chaz32621

    Chaz32621

    Joined:
    Apr 17, 2015
    Posts:
    199

    What I am trying to do is as the player is runner the platforms spawn in front so many distance. However at the moment that is working fine. But my problem is when the system spawns a left or right turn it only spawns another small straight platform and then continues spawning straight ahead instead of going on one of the paths of left or right. The objects and such that spawn on top are fine. Its just the platforms themselves and how they spawn. Seem to continue to spawn straight regardless if there is a turn.

    The reason behind the player moving is based on there movement speed, also before purchasing the system I thought it was based on the player movement. I am using a different player controller which is having a hard time working with the platforms and such moving. I also have a lot of objects that are actually people who are moving around as well. If the platforms and such moved it would make it difficult for everything to work.
     
  20. Chaz32621

    Chaz32621

    Joined:
    Apr 17, 2015
    Posts:
    199
    Please help its driving me nuts lol. Please.
     
  21. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,128
    It's really tough to say without stepping through the code, but the ObjectLocation does specify which direction it should spawn. If you look at the original code:
    Code (csharp):
    1.  
    2.   // spawn the left and right objects
    3.   if (turnPlatform[(int)ObjectLocation.Center] != null) {
    4.  
    If the turn platform is not null then it will start to spawn objects to the left and the right.
    In this case it may actually be easier to adapt the player controller to the non-moving states rather than the other way around. The Infinite Object Generator is designed around the objects moving rather than the character. Plus you'll start to get floating point errors for objects way off in the distance if the player moves.
     
  22. Chaz32621

    Chaz32621

    Joined:
    Apr 17, 2015
    Posts:
    199
    Ya, guess I need to hahaha I really need the turns in the game. Blah well thank you I do enjoy the system.
     
  23. aman_unity3d

    aman_unity3d

    Joined:
    Sep 6, 2014
    Posts:
    4
    Hi Opsive,

    I'm using unity 5.2.0 and I'm getting an error when I enable the Input Controller.

    NullReferenceException: Object reference not set to an instance of an object
    InputController.Update () (at Assets/Infinite Runner/Scripts/Game/InputController.cs:174)
     
  24. aman_unity3d

    aman_unity3d

    Joined:
    Sep 6, 2014
    Posts:
    4
    I'm trying to rotate the Player on the x-axis and z-axis with the accelerometer input. I'm able to rotate the Player on the z-axis without any problem, but when I try to rotate the Player in x-axis main camera also rotates in the x-axis with the player. Any idea how to stop this..

    Here's the sample code -
    //In the PlayerController.cs
    thisTransform.localEulerAngles = new Vector3(
    Input.acceleration("Vertical"),
    transform.localEulerAngles.y,
    -Input.acceleration("Horizontal")
    );
     
  25. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,128
    In the camera controller it determines its position based off of the characters rotation. You'll need to update the late update method so it doesn't directly correspond to the characters rotation.
     
  26. aman_unity3d

    aman_unity3d

    Joined:
    Sep 6, 2014
    Posts:
    4
    can you please tell me, how to freeze the rotation of camera on x-axis, camera controller code looks complicated for a beginner.
     
  27. MinhDao

    MinhDao

    Joined:
    Oct 28, 2013
    Posts:
    155
  28. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,128
    Before you really get into it I highly recommend that you take a look at Unity Learn projects - this will take some time up front but will dramatically reduce your development time as you'll learn how to script.

    But you'll want to restrict the x-axis by modifying the lines that assign the rotation to the camera's transform. You can assign the euler x angle to 0 before the actual assignment is done.

    That would be cool - thanks for the suggestions!
     
  29. alvaro-em

    alvaro-em

    Joined:
    Feb 23, 2012
    Posts:
    77
    Hi, Justin.

    Your asset looks great and we are considering about purchasing it. But before to do it, I'd like to be completely sure that it will fit our needs.

    We are going to develop an augmented reality infinite runner (it is like a treadmill in place over a marker). We wouldn't need an environment or skyboxes since it is an augmented realty app, also it is important to have the treadmill in place so it is always over the marker and don't move over time. We only would need enemies and obstacles spawn management and player control. Could you tell me wether your system would allow to do such a game or not before purchasing it?

    Thank you in advance!
     
  30. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,128
    Interesting idea :)

    The environment or skybox isn't required - you could have a blank set of platforms and that would work without a problem. A player object is required but you could have it be invisible as well. You'll also want to disable being able to change slots and not have any turns, but I think that it's doable.
     
  31. Arsinx

    Arsinx

    Joined:
    Apr 14, 2014
    Posts:
    55
    Hello there,
    I was recently called on to work on a project using youre script. my task was to create the functionality of daily challanges. I've previously coded a a generic class that when queried returns a prefab to be spawned as daily challenge. How Do I make it work with the kit that it asks my class for a prefab to then spawn, but it will only ask it very very occasionally.
     
  32. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,128
    I think that the easiest way to do this would be to modify the AppearanceProbability.GetProbability/DistanceValue.GetValue methods and return 1 when the prefab should spawn. This will force that daily prefab to spawn at that time. Before you start to make this change I would first go through InfiniteObjectGenerator.SpawnObjects/InfiniteObjectManager.GetNextObjectIndex so you have an idea on how the spawning system works.
     
  33. Arsinx

    Arsinx

    Joined:
    Apr 14, 2014
    Posts:
    55
    After going through the functions it seems that I would be better of making the daily challenge prefab as a new object type.
    Any guide on how I would go about setting up a new object type to be spawned.
    What I want is that, lets say I call spawn collidable for the DailyChallange object type, then instead of looking at the probability chances of specific prefabs in that category, it just calculates one very low probability, of weather to spawn it or not. If it decides to spawn, it then asks my class which prefab to spawn, my class will return a prefab for it to spawn. Is this possible or is their another way for me to do this more easily by modifying my own code.
     
  34. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,128
    That does sound possible and could be an alternate way of handing it. I don't have a guide on creating a new object type but it is probably going to be more work than just modifying the GetProbability method because you'll need to add to the ObjectType enum and add it in to the SpawnObjects logic of the Infinite Object Generator. If you go with my first method you could subclass the Appearance Rules and return a probability of 1 when the object should spawn based on the daily challenge.
     
  35. tani41

    tani41

    Joined:
    Feb 23, 2016
    Posts:
    10
    Hello there

    i want to increase length of platform how can i do it so platform spawn and allign with next platform correctly plz help..
     
  36. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,128
    Platforms can be any size so that's no problem. For object alignment take a look at this page: http://opsive.com/assets/InfiniteRunnerStarterPack/documentation.php?id=38.

    What I recommend now is to actually just combine your platforms and scenes into one platform object. It'll make alignment a lot easier. You don't need to add scenes to the Infinite Object Manager.
     
  37. tani41

    tani41

    Joined:
    Feb 23, 2016
    Posts:
    10
    Can you please help me step by step
    what i am facing now is :
    i have platforms and my scenes are on the platforms as a child
    i want to increase z scale of my platform which is 1 by default if i increase it to 16 then what i need to do is to copy z scale size from transforms component then paste it to platform object component's z in override size property or centre offset property? i have tried both but when i play my scaled platform is come up on other platforms not to properly next to others???
     
  38. arnesso

    arnesso

    Joined:
    Mar 3, 2015
    Posts:
    96
    I know it is not too active forum right now, but maybe someone can give me tips,
    I tried to change the castle map for an infinte water, snow land, but it does not work , just spawn once.
    Is there any tutorial how should a man make infinte "open world" ( just apparently) and also keep the 3 tracks system ?
    ( I saw Shred it game was made also by starter pack )
    thank you :)
    Cheers ! :)
     
  39. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,128
    The Using Your Own Assets video should help. In the case of Shred It they only used Platforms and not Scenes and for their platforms they made the model wide enough to cover the entire screen.
     
    arnesso likes this.
  40. lullaharsh

    lullaharsh

    Joined:
    Sep 9, 2012
    Posts:
    29
    Please tell me how do I add ads and IAPs... I cant seem to modify the GUI. All I can do is to create a new canvas and add a new GUI. I'm not great at scripting
     
  41. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,128
    The infinite runner doesn't include an ad or IAP implementation so you'll want to follow the documentation for the implementation that you are using.
     
  42. healym

    healym

    Joined:
    May 17, 2016
    Posts:
    19
    I'm interested in buying it, but I'd like to use a vehicle in place of the current runner. Is this possible? In other assets you're required to replace the runner with another rigged humanoid. Also, I'm not much of a coder. Would it possible to use the asset and add custom actions such as a flying vehicle without much coding? Thanks.
     
  43. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,128
    Thanks for taking a look at the infinite runner.

    I have seen people use vehicle with it so it doesn't have to be humanoid, but I'm not sure how much custom coding they did. Flying will definitely take a decent amount of new code in order to add it to the PlayerController.
     
  44. Artomiano

    Artomiano

    Joined:
    Dec 1, 2014
    Posts:
    200
    Hi,

    I'm new here and found your asset. Maybe it's useful for me and you can give me some advise. As I saw in the demo, there is a type of "ingame shop" for characters and power ups. Am I right, that I can easily connect this with an IAP system, like "simple IAP" from the asset store? Did anyone this before and can tell some expierence?

    Another thing:
    Because I'm looking for the right solution for my game I planned, can you tell me why I should use your asset instead of "Ultimate Runner Engine"?

    Last but not least:
    What about compatibility with Unity 5.5? The asset is a relative old one... ;)

    Ideas / questions:
    - Can the player specify his name?
    - Is there a way to connect to a MySQL server to upload the highscore (including the game name)?
     
    Last edited: Feb 23, 2017
  45. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,128
    Thanks for taking a look at the infinite runner.

    The infinite runner isn't integrated with any IAP solutions but it is pretty straight forward. This post gives an example of adding coins.
    The Infinite Runner Starter starter pack has gone through a lot of interations and has been proven to work. It does work with the latest version of Unity and since it is a pretty feature complete asset there isn't a need to update it.

    There isn't any UI which shows the player name so this would require additions to the scripts.

    Not built in but you could modify the Scoreboard component to connect to a server.
     
  46. stalyan77

    stalyan77

    Joined:
    Nov 24, 2013
    Posts:
    14
    Nice to know you keep answering questions at present yet so now i'm going to purchsase the starter pack =)
     
  47. Nevercallmebyname

    Nevercallmebyname

    Joined:
    Nov 18, 2013
    Posts:
    120
    Asking questions/making suggestions...

    First up, mostly for curiosity's sake, vehicle sections/zipline sections and the like. Any plans to implement features like that in the future or ideas on how I could throw it together myself?


    Second and slightly related to the first but probably more important, I want to do something similar to this with the player controlled object in the middle of the screen with the ability to go up down left right and all of everywhere else. I'm certain that this is easy to do since the level is moving and not the player I just don't know how to do it.


    and last one, infinite pitfalls. I personally love these and would love my infinite runner levels to sometimes dead end and the player object starts dropping down one of these again avoiding obstacles up down left and right.


    I'm probably asking a lot more than I think I am. I almost always do. If I am then just ignore the questions.
     
  48. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,128
    You can currently add a curve turn, but you aren't able to do a curved T-turn like that image. In order to add this it will take some work in the InfiniteObjectGenerator.

    Yes, I don't think that this one would be too hard. You'll need to modify the PlayerController to be able to support more free movement.

    This would require some work in both the PlayerController and InfiniteObjectGenerator. Besides slopes/stairs the InfiniteObjectGenerator isn't aware of any vertical movement so it would take a good amount of work to structure it to be able to handle this use case.
     
  49. Nevercallmebyname

    Nevercallmebyname

    Joined:
    Nov 18, 2013
    Posts:
    120
    well good to know that one of those three things is possible.
     
  50. karmik

    karmik

    Joined:
    Oct 8, 2014
    Posts:
    124
    Hi @opsive
    Am planing to buy this.
    But I want to know if this asset support unity 5.6