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.
  2. We have updated the language to the Editor Terms based on feedback from our employees and community. Learn more.
    Dismiss Notice
  3. Join us on November 16th, 2023, between 1 pm and 9 pm CET for Ask the Experts Online on Discord and on Unity Discussions.
    Dismiss Notice

[RELEASED] uConstruct - Fully generic, socket based runtime construction system

Discussion in 'Assets and Asset Store' started by ElroyUnity, Oct 17, 2015.

  1. Alexarah

    Alexarah

    Joined:
    May 1, 2014
    Posts:
    110
    Awesome bro! :) Also do you have any plans to integrate Opsive's Third Person Controller or Invector's Third Person Melee Template? If not how and where should I start in order to integrate it on my own?
     
    ElroyUnity likes this.
  2. ElroyUnity

    ElroyUnity

    Joined:
    May 20, 2015
    Posts:
    1,588
    Yes its on the milestones but not sure when it will be implemented.


    And well, it shouldnt be to hard, i guess just add the damage interface of their system to the building component or call damage directly from the scripts, w/e works for you
     
    Alexarah likes this.
  3. Bengals007

    Bengals007

    Joined:
    Sep 11, 2016
    Posts:
    11
    Can i use this asset to build dragable walls (similar to rimworld but 3d)?
     
  4. Stormy102

    Stormy102

    Joined:
    Jan 17, 2014
    Posts:
    495
    If it involves building, it will work with uConstruct
     
    Alexarah and ElroyUnity like this.
  5. ElroyUnity

    ElroyUnity

    Joined:
    May 20, 2015
    Posts:
    1,588
    Made something similar to that once, very easy :)

    Just a bit of coding needed, but its indeed functional :).
     
    Stormy102 and Alexarah like this.
  6. Bengals007

    Bengals007

    Joined:
    Sep 11, 2016
    Posts:
    11
    cool! do I need to use it in 1st person, or can it be use more as 3rd?
     
    ElroyUnity likes this.
  7. ElroyUnity

    ElroyUnity

    Joined:
    May 20, 2015
    Posts:
    1,588
    W/e you prefer :)
     
    Alexarah likes this.
  8. Bengals007

    Bengals007

    Joined:
    Sep 11, 2016
    Posts:
    11
    Do u have any docs about implementing uConstruct with 3rd party person?
     
  9. ElroyUnity

    ElroyUnity

    Joined:
    May 20, 2015
    Posts:
    1,588
    Well its very easy :), just on the BuildingPlacer component select the raycast origin to be Mouse Position and that's pretty much as far as it goes, everything else is automatic :).
     
    Alexarah likes this.
  10. Bengals007

    Bengals007

    Joined:
    Sep 11, 2016
    Posts:
    11
    There is much more to do than just this.. the rotation and movement aren't sync with the
    In the demo scene, i used the BuildingPlacer component on the third party controller from the unity standard asset (raycast origin to Mouse Position)and for some reasons, the input 1 to 9 werent working anymore. The UI was also not displaying the controls.
     
    ElroyUnity likes this.
  11. ElroyUnity

    ElroyUnity

    Joined:
    May 20, 2015
    Posts:
    1,588
    Did you get any errors ?
    Also enable "Rotate with player" if you want rotation as well :)
     
  12. Bengals007

    Bengals007

    Joined:
    Sep 11, 2016
    Posts:
    11
    I was not getting any errors. Very strange.

    The UI (with the controls) was not displaying, and the input was not working. I could walk around, but not build any foundation or walls.
     
  13. ElroyUnity

    ElroyUnity

    Joined:
    May 20, 2015
    Posts:
    1,588
    Could you verify that the controller's buildingPlacer that you are using has buildings attached to it ? (You can copy the demo's one for testing)
     
  14. Alex3333

    Alex3333

    Joined:
    Dec 29, 2014
    Posts:
    342
    How to solve these 2 problems?
     

    Attached Files:

    ElroyUnity likes this.
  15. ElroyUnity

    ElroyUnity

    Joined:
    May 20, 2015
    Posts:
    1,588
    Sorry for that, was reported to me earlier today, will push an hotfix soon.


    For now replace Photon.ReceiverGroup with simply ReceiverGroup (no namespace).


    Sorry!
     
  16. amasinton

    amasinton

    Joined:
    Aug 12, 2006
    Posts:
    137
    Hey, I'm back! (I started working with uConstruct back in January/February but then more pressing projects turned into 8 months of crunch...)

    Elroy, you're astonishingly active and have remained pleasant, enthusiastic, encouraging and humble all at once. You're super-human. This is an amazing asset too!

    My question: generating buildings with sockets and conditions at runtime? I will be generating custom meshes (such as arch voussoirs) based on user-defined parameters at runtime and I'd like to know how I might go about setting up all the sockets after I generate the mesh.

    This will have to be done through the API, and I know that Elroy put this ability in there back in February in response to my request, I just don't know where to find it now.

    Thanks!
     
    ElroyUnity likes this.
  17. ElroyUnity

    ElroyUnity

    Joined:
    May 20, 2015
    Posts:
    1,588
    Hey!

    Thank you very much for the kind words! :D


    Well, the way you could do it is let them design it like a gameobject and then add it as a socket (building.AddSocket/ AddCondition)

    You could use "CreateSocket" and "CreateCondition" to generate them from the system and they will be created immediately and you only need to let the players move them. (I recommend the second method) :)
     
    amasinton likes this.
  18. amasinton

    amasinton

    Joined:
    Aug 12, 2006
    Posts:
    137
    That seems to work (I used the CreateSocket method you suggested). I've got a basic building (a cube) created entirely in code and handed off to the building placer for placement. I just create a cube, add the BaseBuilding component (configure it) then start creating and configuring sockets.

    Question: Is creating a building entirely at runtime - without it having been a prefab at first - going to cause trouble for the Building Batching system or AoI or saving?

    I'm sure I'll have more questions as I dig deeper, but for a start, this is encouraging. Thanks!
     
    ElroyUnity likes this.
  19. ElroyUnity

    ElroyUnity

    Joined:
    May 20, 2015
    Posts:
    1,588

    Happy to hear that it works !

    And yep :/ multiplayer and savimg wont work but you can easily change that by modifying the build system and usr path instead of id :)
     
    amasinton likes this.
  20. amasinton

    amasinton

    Joined:
    Aug 12, 2006
    Posts:
    137
    Could you be a bit more specific about how to modify the build system and usr path, please? Not sure I understand what you mean.

    Thanks again!
     
    ElroyUnity likes this.
  21. ElroyUnity

    ElroyUnity

    Joined:
    May 20, 2015
    Posts:
    1,588
    Considering you are loading items from an external folder and not a building from the project itself you must save the path to the object instead of the ID.

    Lmk ifits still not underdtandable,
    Once it is i will give you some tips on extending the save system :)
     
    Last edited: Sep 25, 2016
    amasinton likes this.
  22. amasinton

    amasinton

    Joined:
    Aug 12, 2006
    Posts:
    137
    Hey, thanks for the guidance - it makes sense - and sorry for the delayed response.

    I'm building meshes in code at runtime - so, not loading them from an external folder. Is there some way to update the prefabDB at runtime so that these new meshs/GameObjects can them become 'normal' uConstruct buildings?

    I have EasySave, so, as long as I can save the runtime-built meshes and their uConstruct setup in there and reload them, I'm okay. I'm sure I can find a way to achieve what needs to be done.

    Another question: I'm trying to replace the meshes on certain uConstruct buildings that pre-exist as prefabs. How can I replace the mesh in individual, placed uConstruct buildings?

    Example: I have a brick that is a uConstruct prefab. I run a boolean mesh operation on this brick in order to cut off a piece to make it fit in an awkward space. ​

    When I try this, I can create the new brick mesh and assign it to the mesh filter of the uConstruct brick - but the new mesh does not display in the scene view - even though the editor confirms it's there in the placed uConstruct brick MeshFilter. Any suggestions?

    As ever, many thanks!
     
    ElroyUnity likes this.
  23. ElroyUnity

    ElroyUnity

    Joined:
    May 20, 2015
    Posts:
    1,588
    Uhm about the prefab id i'd say give it a shot and if it won't go well i will try to implement something like that :)


    For replacing a mesh you must first disable the batching of the building (building.batchBuilding = false) and then replace the mesh and re-enable the batching (building.batchBuilding = true)
     
    amasinton likes this.
  24. llJIMBOBll

    llJIMBOBll

    Joined:
    Aug 23, 2014
    Posts:
    578
    Hi Elroy, I'm wondering if you can help me. I'm trying to add so I can destroy a building part with a weapon and repair with another, I've managed to make that part work but I need to destroy the building part in my Die function.

    I'm just not sure how to reference it.
    Code (CSharp):
    1. using UnityEngine;
    2. using System.Collections;
    3. using Devdog.InventorySystem;
    4.  
    5. public class JimsBuilding : MonoBehaviour
    6. {
    7.     public float hitPoints = 1000.0f;
    8.     public float initialHitPoints;
    9.  
    10.     private Vector3 attackerPos2;
    11.     private Vector3 attackDir2;
    12.     private Transform myTransform;
    13.     private bool explosionCheck;
    14.     private LayerMask raymask = 1 << 13;
    15.  
    16.     public InventoryItemBase[] items;
    17.  
    18.     void OnEnable ()
    19.     {      
    20.         myTransform = transform;
    21.         initialHitPoints = hitPoints;
    22.     }
    23.  
    24.     public void ApplyDamage ( float damage, Vector3 attackDir, Vector3 attackerPos, Transform attacker, bool isPlayer, bool isExplosion, Rigidbody hitBody = null, float bodyForce = 0f )
    25.     {
    26.         if (hitPoints <= 0.0f){
    27.             return;
    28.         }
    29.  
    30.         //prevent hitpoints from going into negative values
    31.         if(hitPoints - damage > 0.0f){  
    32.                 hitPoints -= damage;
    33.         }else{
    34.             hitPoints = 0.0f;
    35.         }
    36.  
    37.         attackDir2 = attackDir;
    38.         attackerPos2 = attackerPos;
    39.         explosionCheck = isExplosion;
    40.  
    41.         if (hitPoints <= 0.0f) {
    42.             Die ();
    43.         }
    44.            
    45.     }
    46.  
    47.     public void Repair ( float damage )
    48.     {
    49.         if (hitPoints > initialHitPoints){//Don't add health if player is dead
    50.             return;
    51.         }
    52.  
    53.         hitPoints += damage;
    54.     }
    55.  
    56.     void Die()
    57.     {
    58.         InventoryManager.AddItems (items);
    59.  
    60.         //Destroy Build Part Here
    61.     }
    62.  
    63. }
    I did try with

    using UConstruct.Demo;

    and calling BuildingPlacer.DestroyCurrentBuilding();

    but doesn't seem to work, Thanx again Jimbob
     
  25. llJIMBOBll

    llJIMBOBll

    Joined:
    Aug 23, 2014
    Posts:
    578
    I got it to work, plus I never had the raymask set to correct layermask :D
    Code (CSharp):
    1. using UnityEngine;
    2. using System.Collections;
    3. using Devdog.InventorySystem;
    4. using uConstruct;
    5.  
    6. public class JimsBuilding : MonoBehaviour
    7. {
    8.     public float hitPoints = 1000.0f;
    9.     public float initialHitPoints;
    10.  
    11.     private Vector3 attackerPos2;
    12.     private Vector3 attackDir2;
    13.     private Transform myTransform;
    14.     private bool explosionCheck;
    15.     private LayerMask raymask = 1 << 16;
    16.  
    17.     public InventoryItemBase[] items;
    18.  
    19.     [HideInInspector]
    20.     public BaseBuilding currentBuilding;
    21.  
    22.     void OnEnable ()
    23.     {      
    24.         myTransform = transform;
    25.         initialHitPoints = hitPoints;
    26.     }
    27.  
    28.     public void ApplyDamage ( float damage, Vector3 attackDir, Vector3 attackerPos, Transform attacker, bool isPlayer, bool isExplosion, Rigidbody hitBody = null, float bodyForce = 0f )
    29.     {
    30.         if (hitPoints <= 0.0f){
    31.             return;
    32.         }
    33.  
    34.         //prevent hitpoints from going into negative values
    35.         if(hitPoints - damage > 0.0f){  
    36.                 hitPoints -= damage;
    37.         }else{
    38.             hitPoints = 0.0f;
    39.         }
    40.  
    41.         attackDir2 = attackDir;
    42.         attackerPos2 = attackerPos;
    43.         explosionCheck = isExplosion;
    44.  
    45.         if (hitPoints <= 0.0f) {
    46.  
    47.             InventoryManager.AddItems (items); //Add Resources back, prob 50%
    48.  
    49.             gameObject.GetComponent<BaseBuilding> ().DestroyBuilding(); //Remove build part
    50.         }
    51.            
    52.     }
    53.  
    54.     public void Repair ( float damage )
    55.     {
    56.         if (hitPoints > initialHitPoints){//Don't add health is full health
    57.             return;
    58.         }
    59.  
    60.         hitPoints += damage;
    61.     }
    62.  
    63. }
     
    ElroyUnity likes this.
  26. amasinton

    amasinton

    Joined:
    Aug 12, 2006
    Posts:
    137
    Hey! I think I'm now able to add my runtime-created buildings to the PrefabDB at runtime. Since your PrefabDB doesn't strictly rely on prefabs (the creation of which are strictly editor-only), I've been able to to add my own objects upon creation in the player. I haven't tested this with a stand-alone player yet.

    Still working on swapping meshes. It doesn't seem as simple as just turning off batching, swapping out the mesh, then turning batching back on. But this may be due to the CSG library I'm using too. Will keep at it and report back.

    Thanks again.
     
  27. ElroyUnity

    ElroyUnity

    Joined:
    May 20, 2015
    Posts:
    1,588
    Happy you got it fixed, sorry for being a ghost today, wasn't home at all.

    Happy you got thje prefab db fixed :).

    Lmk what else you found about it, i personally use that method in a different project for material and mesh switching and it seems to work perfectly :)

    Keep me updated!
     
    amasinton likes this.
  28. amasinton

    amasinton

    Joined:
    Aug 12, 2006
    Posts:
    137
    I haven't tested out my runtime DB update in a build yet. Will let you know how that goes, but it will be a while before I get that far.

    I have gotten the mesh swapping to work! It was the mesh boolean library I was using - it based the boolean mesh on world 0, so the mesh appeared very far away from the uConstruct building. Fixed that and it works fine now - there was nothing wrong with your code, just my understanding of my boolean library.

    Many thanks!
     
    ElroyUnity likes this.
  29. amasinton

    amasinton

    Joined:
    Aug 12, 2006
    Posts:
    137
    Today's question: Custom condition and BaseBuilding null reference

    When placing a building on a floor object - the 'ground' in the scene - it is always placed sunken up to its pivot in that floor object.

    To prevent this, I've written my own condition (cribbed from your CheckForCollisions condition) which checks during placing if the building is in contact with the floor object. If it is, it sets the building's placingOffset.y to half the height of the bounding box of the building. If it is not in contact with the floor object, it sets the placingOffset.y to 0. In my code, I have to refer to BaseBuilding.placingOffset twice in an if/else statement.

    When I run the scene in the editor I always get a null reference error pointing to the line where I make the second reference to BaseBuilding.placingOffset (in the code below, line 44). If I have just one reference to BaseBuilding.placingOffset in the script, I don't get that error, but then I can't toggle between zero offset and each building's specific offset.

    Below is my code - any thoughts? Perhaps there's a simpler way to do this.

    Thanks, as ever, for your help - and do PM me if I'm taking too much of your time/being a pest.

    Code (CSharp):
    1. using UnityEngine;
    2. using System.Collections;
    3. using System.Collections.Generic;
    4.  
    5. using uConstruct.Sockets;
    6. using uConstruct.Core.Blueprints;
    7. using uConstruct.Core.Saving;
    8.  
    9. namespace uConstruct.Conditions
    10.  
    11. {
    12.     public class CheckFloor : BaseCondition {
    13.  
    14.         public float offsetHeight = 0.0f;
    15.         public List<Collider> collisions = new List<Collider>();
    16.         public bool offsetSet = false;
    17.  
    18.         public BaseBuilding baseBuilding;
    19.         private Collider myCollider;
    20.         private Rigidbody myRigidbody;
    21.         private Collider groundCollider;
    22.  
    23.         void Start () {
    24. //            baseBuilding = transform.parent.parent.GetComponent<BaseBuilding>();
    25.             baseBuilding = rootBuilding;
    26.             myCollider = gameObject.GetComponent<Collider>();
    27.             myRigidbody = gameObject.GetComponent<Rigidbody>();
    28.             offsetHeight = baseBuilding.gameObject.GetComponent<MeshRenderer>().bounds.extents.y;
    29.             gameObject.layer = LayerMask.NameToLayer("Ignore Raycast");
    30.             groundCollider = GameObject.Find("Ground").GetComponent<Collider>();
    31.         }
    32.  
    33.         public override bool CheckCondition () {
    34.             RemoveNullReferences();
    35.             return offsetSet = true;
    36.         }
    37.  
    38.         public void SetOffset () {
    39.             if (collisions.Contains(groundCollider) == true) {
    40.                 baseBuilding.placingOffset.y = offsetHeight;
    41.                 offsetSet = true;
    42.             }
    43.             else {
    44.                 baseBuilding.placingOffset.y = 0.0f;
    45.                 offsetSet = false;
    46.             }
    47.         }
    48.  
    49.         void RemoveNullReferences()
    50.         {
    51.             Collider collider;
    52.             var originalList = collisions;
    53.  
    54.             for (int i = 0; i < originalList.Count; i++)
    55.             {
    56.                 collider = originalList[i];
    57.  
    58.                 if (collider == null || !collider.enabled)
    59.                 {
    60.                     collisions.Remove(collider);
    61.                 }
    62.             }
    63.             SetOffset();
    64.         }
    65.  
    66.         void AddCollider(Collider collider)
    67.         {
    68.             if (!collisions.Contains(collider) && collider.enabled && !collider.transform.Equals(rootBuilding) && !collider.isTrigger) // make sure we dont collide with sockets or our own building
    69.             {
    70.                 collisions.Add(collider);
    71.             }
    72.         }
    73.  
    74.         void RemoveCollider(Collider collider)
    75.         {
    76.             if (collisions.Contains(collider))
    77.                 collisions.Remove(collider);
    78.         }
    79.  
    80.         void OnTriggerEnter(Collider collision)
    81.         {
    82.             AddCollider(collision);
    83.         }
    84.  
    85.         void OnTriggerExit(Collider collision)
    86.         {
    87.             RemoveCollider(collision);
    88.         }
    89.  
    90.         /// <summary>
    91.         /// Pack our building data
    92.         /// </summary>
    93.         /// <returns>our building data</returns>
    94.         public override BlueprintData Pack()
    95.         {
    96.             return new CheckFloor_BlueprintData(this);
    97.         }
    98.     }
    99.  
    100.     [System.Serializable]
    101.     public class CheckFloor_BlueprintData : BlueprintData
    102.     {
    103. //        public List<string> allowedTags;
    104.         public SerializeableVector3 center;
    105.         public SerializeableVector3 size;
    106.  
    107.         public CheckFloor_BlueprintData(CheckFloor condition)
    108.         {
    109.             this.name = condition.transform.name;
    110.  
    111.             this.position = condition.transform.localPosition;
    112.             this.rotation = condition.transform.localRotation;
    113.             this.scale = condition.transform.localScale;
    114.  
    115. //            this.allowedTags = condition.allowedTags;
    116.  
    117.             BoxCollider collider = condition.GetComponent<BoxCollider>();
    118.  
    119.             if (collider != null)
    120.             {
    121.                 this.center = collider.center;
    122.                 this.size = collider.size;
    123.             }
    124.         }
    125.  
    126.         public override void UnPack(GameObject target)
    127.         {
    128.             BaseBuilding building = target.GetComponentInParent<BaseBuilding>();
    129.  
    130.             if (building != null)
    131.             {
    132.                 CheckFloor condition = (CheckFloor)building.CreateCondition(name, SocketPositionAnchor.Center, typeof(CheckFloor));
    133.  
    134.                 BoxCollider collider = condition.GetComponent<BoxCollider>();
    135.  
    136.                 if (collider != null)
    137.                 {
    138.                     collider.center = (Vector3)this.center;
    139.                     collider.size = (Vector3)this.size;
    140.                 }
    141.  
    142.                 condition.transform.localPosition = (Vector3)position;
    143.                 condition.transform.localScale = (Vector3)scale;
    144.                 condition.transform.localRotation = (Quaternion)rotation;
    145.  
    146. //                condition.allowedTags = this.allowedTags;
    147.             }
    148.         }
    149.     }
    150.  
    151. }
    152.  
     
    ElroyUnity likes this.
  30. ElroyUnity

    ElroyUnity

    Joined:
    May 20, 2015
    Posts:
    1,588

    Never heard about that one, but you can try changing that:

    Code (csharp):
    1.  
    2.       public void SetOffset () {
    3.             if (collisions.Contains(groundCollider) == true) {
    4.                 baseBuilding.placingOffset.y = offsetHeight;
    5.                 offsetSet = true;
    6.             }
    7.             else {
    8.                 baseBuilding.placingOffset.y = 0.0f;
    9.                 offsetSet = false;
    10.             }
    11.         }
    12.  
    with

    Code (csharp):
    1.  
    2.       public void SetOffset () {
    3.            bool isGroundCollider = collisions.Contains(groundCollider);
    4.  
    5.             if (isGroundCollider) {
    6.                 baseBuilding.placingOffset.y = offsetHeight;
    7.                 offsetSet = true;
    8.             }
    9.             else {
    10.                 baseBuilding.placingOffset.y = 0.0f;
    11.                 offsetSet = false;
    12.             }
    13.  
    14.             baseBuilding.placingOffset.y = isGroundCollider ? offsetHeight : 0.0f;
    15.         }
    16.  

    And it is always my pleasure to help :).
     
    amasinton likes this.
  31. amasinton

    amasinton

    Joined:
    Aug 12, 2006
    Posts:
    137
    Your code is much more elegant than mine but it didn't get rid of the error. :(

    However, it did make me dig a little deeper and I discovered that the condition was being checked before all of the references were set. I changed that and it works like a charm! :)

    I think I've got a pretty good grasp of uConstruct and what I'd like to achieve with it at this point. I'm sure I'll have questions in the future, but for now everything is going well and I'm turning my attention to UI and splines (fun!).

    Thanks tremendously for your help.
     
    ElroyUnity likes this.
  32. ElroyUnity

    ElroyUnity

    Joined:
    May 20, 2015
    Posts:
    1,588
    Happy you got it working :).
     
    Last edited: Oct 3, 2016
    amasinton likes this.
  33. llJIMBOBll

    llJIMBOBll

    Joined:
    Aug 23, 2014
    Posts:
    578
    Hi Elroy! I'm just wondering about when rotating a building object...
    When I placed it snaps to 90 degree, but if I rotate the object before plcing it doen't snap to 90 degree its at like 86 degree...

    I'm not sure if its a Unity bug as recently it sets the rotation to some objects off 90 degree...

    I'm using latest UConstruct and Unity 5.4.1 Win 10

    Thank You if you can Help!

    [/IMG]

    The stairs on the right are just placed with no rotate with mouse wheel, and the one on left is rotated with mouse wheel
     
  34. ElroyUnity

    ElroyUnity

    Joined:
    May 20, 2015
    Posts:
    1,588
    First of all, beautiful structurs ;)

    And very weird, havent experienced it so far but i will check it first thing when i am home !
     
    Last edited: Oct 10, 2016
    llJIMBOBll likes this.
  35. llJIMBOBll

    llJIMBOBll

    Joined:
    Aug 23, 2014
    Posts:
    578
    XD I made them today some Stone parts :D

    and THANK YOU SIR!
     
  36. llJIMBOBll

    llJIMBOBll

    Joined:
    Aug 23, 2014
    Posts:
    578
    Just done some testing, it happens if I have rotate with player on the Inventory Building placer, if this is unchecked then it rotated perfect.

    Hope this helps!
    Thank You
     
  37. ElroyUnity

    ElroyUnity

    Joined:
    May 20, 2015
    Posts:
    1,588
    Oh ofcourse, that's a feature, its basically rotating the building according to the player rotation
     
  38. llJIMBOBll

    llJIMBOBll

    Joined:
    Aug 23, 2014
    Posts:
    578
    Oh I mean if I have rotate with player on and place a foundation, when I place a stairs and rotate before I place then it doesn't snap to 90 degree...

    But if I have rotate with player off and place a foundation then place a stairs, but before i can rotate and it snaps to the foundation 90 degree....

    But with rotate with player because the foundation isn't placed on a 90 degree to world the stairs is acting like its snapping to the world 90 degree and not the foundation its placed on then 90 degree...

    Not sure how to explain
     
    ElroyUnity likes this.
  39. ElroyUnity

    ElroyUnity

    Joined:
    May 20, 2015
    Posts:
    1,588
    uhmm, if possible, send me a private msg with your skype and i will try to adress it privately tomorrow, will be easier :)
     
  40. ElroyUnity

    ElroyUnity

    Joined:
    May 20, 2015
    Posts:
    1,588
    Hey guys!

    Wont be online for the next 25 hours as part of an tradition! sorry guys!, no support until i am back, as i cannot use the computer at all.

    Please do not worry if i am not answering until i am back :).
     
  41. Alex3333

    Alex3333

    Joined:
    Dec 29, 2014
    Posts:
    342
    How to disable the save blocks on the card? in the options there is 2 lines and the inclusion of conservation. I clean there is 2 ticks . Start the game and put the blocks where the checkboxes are automatically enabled!! The next time you run these units back on the map. how to make so that the blocks were not saved?
     
    ElroyUnity likes this.
  42. ElroyUnity

    ElroyUnity

    Joined:
    May 20, 2015
    Posts:
    1,588
    Wait, you mean that disabling the saving on the settings doesnt work ?
     
  43. Alex3333

    Alex3333

    Joined:
    Dec 29, 2014
    Posts:
    342
    Yes , every time I turn off the save mode and every time I go to the map and there is an old building.
     
    ElroyUnity likes this.
  44. ElroyUnity

    ElroyUnity

    Joined:
    May 20, 2015
    Posts:
    1,588
    Thanks for the report, will check it before the flight today :)
     
  45. ElroyUnity

    ElroyUnity

    Joined:
    May 20, 2015
    Posts:
    1,588
    Hey alex i am going out on a vacation now, didn't have the time to look at it, i am so sorry...
    I will be back on the 24th, and then i will send you a fix.

    What i recommend to do now is go into the code and basically make UCSavingManager.enabled = false;
    (On the building placer before it loades the save)

    Sorry for the hardcoded solution.

    I will try to be as active as possible on support and forums :)
     
  46. Stormy102

    Stormy102

    Joined:
    Jan 17, 2014
    Posts:
    495
    Hey @ElroyUnity is it possible to remove uConstruct's saving system and use our own?
     
    ElroyUnity likes this.
  47. ElroyUnity

    ElroyUnity

    Joined:
    May 20, 2015
    Posts:
    1,588
    Yes,
    you will need to disable the saving system from the settings, Alex reported that its broken though, i will look at it on the weekend :).
     
  48. Stormy102

    Stormy102

    Joined:
    Jan 17, 2014
    Posts:
    495
    Okay cool seriously having to restrain myself from going and buying it before I've made the necessary changes to our project :p
     
    ElroyUnity likes this.
  49. ElroyUnity

    ElroyUnity

    Joined:
    May 20, 2015
    Posts:
    1,588
    :D
     
    Stormy102 likes this.
  50. Stormy102

    Stormy102

    Joined:
    Jan 17, 2014
    Posts:
    495
    Ugh the delay in forum posts getting through - I wish Unity's forum was able to sent notifications through Chrome... (best browser ;)) :(
     
    Last edited: Oct 29, 2016
    ElroyUnity likes this.