Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Octave3D-Level Design - Snapping, Prop placement, Multi-Prefab painting

Discussion in 'Assets and Asset Store' started by XGT08, Aug 10, 2016.

?

Do you prefer written documentation or video tutorials? (regarding the Octave3D remake)

Poll closed Jun 10, 2023.
  1. Written documentation

    68.8%
  2. Video tutorials

    31.3%
  1. shamsfk

    shamsfk

    Joined:
    Nov 21, 2014
    Posts:
    307
    That's so cool) Aren't any sales coming?)
     
  2. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,893
    :D Glad you like it!

    "Aren't any sales coming?)"
    LOL)))))) I have absolutely no idea. But I will keep you updated if you wish. :)
     
  3. RecursiveRuby

    RecursiveRuby

    Joined:
    Jun 5, 2013
    Posts:
    163
    I have a question about the miss chance in regards to the decor paint brush. Maybe its answered somewhere but I've looked around and haven't really seen it mentioned. Anyway so as far as I'm aware the miss chance works by testing the current element against a random number and weighing up the chance to miss. And it iterates through every element from start to end. Take this pseudo code snippet as an example to how I think it works.

    Code (CSharp):
    1.  
    2. foreach(var element in elements){
    3. var randomNumber = Random() // Between 0 -1
    4. var missChance = 0.5;
    5. var chanceToSpawn = randomNumber - missChance;
    6. if(chanceToSpawn > 0){
    7. // Spawn
    8. break;
    9. }
    10. }
    So the first element has a 50% chance to spawn. If the second element has a miss chance of 0.5 as well it really has a 25% chance to spawn and so on and so forward.

    Something like this tends to favour the objects at the start and I know you could calculate miss chances to give each object a fair chance but this is kind of tedious. Is there anyway we could have objects in a brush have a probability chance to spawn rather than a miss chance? So each object takes a weight and one is chosen at random.

    For example image you had a collection like this.
    Name and weight respectively.
    Apple : 1
    Orange : 0.5
    Banana 1

    So both Apple and Banana's have a 40% chance of spawning each and an orange has a 20% chance of spawning.

    Is it possible to do something like this or is there any chance this could be implemented? I just find the idea of working with weights to be much easier than miss chance when trying to design something using a random collection of objects.
     
  4. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,893
    Hi there @Barabicus

    So I have to be honest with you and say that I have always had trouble understanding probability related stuff :D, but I'll do my best in trying to explain how the algorithm works now (really close to what you envisioned it).

    So your version of the algorithm is pretty close, but there's one important difference. Here's how it actually works:
    Code (CSharp):
    1. foreach(var element in elements)
    2. {
    3.     float missChance = element.MissChance;
    4.     float randomNumber = Random(); // [0, 1]
    5.     if(randomNumber  < missChance) continue;
    6.  
    7.     // Spawn
    8. }
    In your code there was a break statement which means that when an element was spawned, the elements which followed were ignored. This was never my intention. My intention was to just let the user control how frequently a prefab is spawned. The fact that one element is spawned or not does not control the other elements' spawn chance. Each element will be spawned based purely on its own associated miss chance.

    Now I have to admit that the decision to use a miss chance rather than a spawn chance is a bit awkward. I think these 2 concepts should be inverted. So what I can do is rename this to Spawn chance instead of Miss chance. And in that case a value of 1 means that the element will always be spawned. A value of 0 means it will never be spawned.

    Now regarding your fruit example, I'm afraid I can not wrap my head around that :D
    So from the example you provided I see the Apple and Banana having a 100% chance to spawn and the Orange a 50% chance.

    Wait :D I think I know what you mean now. So I think you mean to have normalized weights. In your example, the banana and apple would be 1 / 2.5 = 0.4 and the orange is 0.5 / 2.5 = 0.2 ??? Is this correct? Hmm... I believe this is a great idea, but I can not tell you 100% when it will be available. It definitely seems much more correct. Again, I think this is one of those probability things that messes with my head. I promise I will look into this and let you know about what I can do.

    EDIT: Ok. The more I think about what you said the more I realize that you are 100% correct :D Now that I look back at it, I think my current implementation is a bit awkward because it doesn't prioritize the objects based on their spawn chance/miss chance. So I will modify the algorithm and also change the miss chance to a weight value. Thanks!

    Thanks,
    Andrew
     
    Last edited: May 20, 2017
    Mark_01 likes this.
  5. RecursiveRuby

    RecursiveRuby

    Joined:
    Jun 5, 2013
    Posts:
    163
    oooh okay so I didn't realise each object had a chance to spawn. That makes a lot more sense to me now, thanks. And yes the weights are normalized and you would be correct in saying 1/2.5 = 0.4. Its just a system I've used before in other random generation projects and I quite like it. You kind of get a good feel for how frequently something will spawn.

    Also I have one last question (and this may be hard to explain without a video but I will include one if needs be) when using brush paint I've noticed one object will always spawn at the center of the brush and the rest around the radius. That is one object of each stroke is not distributed like every other object and will always appear in a predictable position.

    Also note I originally thought the issue with this issue was due to the miss chance but after you answering that, I can see its not.

    Consider the following image, I wrote "Hi" using a brush with a large enough radius. As expect there is random distribution of all of the prefabs. The only thing that stands out is the first prefab (A brown suit case in this example) Is always placed in the center of the brush stroke. You can see it here in the image. I highlighted where this is appearing in the second image if doesn't stand out too much in the first. Maybe I'm not using it correctly? I'm not sure. Whatever the case though when using the brush the first prefab will always appear in the center with each stroke as if I were using a brush overlayed on a single decor tool.
     

    Attached Files:

    • a.png
      a.png
      File size:
      272.1 KB
      Views:
      867
    • a2.png
      a2.png
      File size:
      253.8 KB
      Views:
      879
  6. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,893
    Yap. That's a bug. I actually looked at the code and I see that I explicitly specify the center of the brush for the first element :D Don't know why that is. I will fix it ASAP.

    One question. Can you point me to a tutorial or doc of some sorts which would help me with spawn chance thing? I remember there was a concept called probability tables, but I have a bit of trouble finding anything of the net that could be useful. So basicly, to use your fruit example, if I generate a random number of 0.8. Which object do I pick? The banana or the apple? And this value is out of range so to speak since the maximum chance is 0.4 in this example. So any info you could give me on this would be really helpful since as I said, I kind of have trouble with this :)
     
  7. ldlework

    ldlework

    Joined:
    Jan 22, 2014
    Posts:
    46
    Hello, I just purchased Octave3D and I am trying to merge meshes and having some not so great results.

    Before combining:
    upload_2017-5-23_0-15-53.png
    After combining:
    upload_2017-5-23_0-16-39.png

    The material:

    upload_2017-5-23_0-17-31.png
    List Clustering View (whatever that is):
    upload_2017-5-23_0-19-21.png
    Realtime Indirect:
    upload_2017-5-23_0-20-29.png


    What's going on here?
     
  8. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,893
    Hi there @Idlework,

    I am looking at the first 2 images you attached and I do not see anything wrong there.
    I am not familiar with List clustering view.

    I can see something off in the Realtime Indirect image. The left side seems to be grayed out a bit???

    EDIT: OK I can see now in the second image the lighting is a bit off.
    EDIT: I sent you a PM with a new package along with some explanations.
     
    Last edited: May 23, 2017
    Mark_01 likes this.
  9. ayk

    ayk

    Joined:
    Nov 14, 2013
    Posts:
    58
    Hi @XGT08,

    I have a question. When I'm placing prefabs in the scene, it's adding them into the root level of the hierarchy and not under the gameobject I attached the Octave3D script to. Am I missing a setting somewhere? From the tutorial videos, it seems like the prefabs should automatically be added under the Octave gameobject.
     
  10. XGT08

    XGT08

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

    Yes, this is behaviour was introduced in V 2.2. In time, I have received a few hints from different customers that attaching the objects to the Octave3D object was restrictive or confusing, so I decided to change this.

    However, you can still achieve the same behaviour as before using object groups.
    Simply right click on the Octave3D object in the hierarchy view, and select Octave3D -> Set as Object group menu item. This will create an object group from the octave3D object. Then you have to activate the object group, check the Attach to active group toggle and the objects will be attached there. I made a short video for another customer explaining how object groups work, so I recommend you check it out here.

    I will do a write up later about some of the changes that have been made in 2.2

    Cheers,
    Andrew
     
  11. ayk

    ayk

    Joined:
    Nov 14, 2013
    Posts:
    58
    Ah, beautiful. Thanks!
     
  12. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,893
    Hi everyone,

    Octave3D V 2.2 has been released on the store and I just want to give you some quick info regarding some of the changes that have been made.

    IMPORTANT
    1. Starting with this version the tool will no longer enforce the objects to be children of Octave3D. I made this change because I got the impression that for some customers it was restrictive or confusing. So now when you place objects in the scene, by default the tool will place them at the root level. For those of you who would like to use the previous arrangement, you will have to perform the following steps:
    • right click on the Octave3D object in the hierarchy view;
    • go to Octave3D->Set as Object Group. This will create an object group from the Octave3D object;
    • check the Attach to active object group toggle;
    • activate the Octave3D group.
    These last few steps are shown in this video which I have recorded for another customer. It shows how object groups work and what options are available.
    Note: The Octave3D->Set as Object Group menu item will be renamed to Make group in the next update. Sorry about that :)

    2. After you update to V2.2, please click on the following menu item in the top toolbar:
    Octave3DFix.png

    This will bring up the following window:
    Octave3DFixWindow.png
    Long story short, it is something that is required when switching from an earlier version. It was initially supposed to fix a bug which caused some internal Octave3D modules to leak, but for safety, it is recommended to apply this fix after you upgrade to V2.2. This bug does not affect any builds, because those objects only exist inside the Editor. So no worries if you deployed a build somewhere.

    3. Inside the prefab management window, there used to be a Look and Feel dropdown which would make certain controls visible that allowed you to control certain style aspects of the prefab management window. In order to save space, there is now a button which when clicked opens up a new window that allows you to control these settings:
    PrefabsLookAndFeelButton.png

    4. The mesh combiner has also undergone certain changes to make the process more flexible. First of all, the mesh combine settings are no longer accessed from the last button in the toolbar (the one with the orange grid cells). That button has been removed and the mesh combine settings reside in their own special editor window. Click on the following button to bring up the window:
    MeshCmbButton.png
    The window looks like this:
    meshCmbWindow.png

    So let me briefly run you through some of the things that have changed here. I'm not going to go through all these settings since most of these should be pretty much self explainable.
    • Generate lightmap UVs - check this only if you are planning on using the combined meshes with lightmapping. I recommend to leave this unchecked otherwise since generating lightmap UV's can (to my knowledge) increase the vertex count (double in worst case scenario); In the previous version lightmap UVs were always generated.
    • Mark no longer readable - if checked, the tool will mark the combined meshes as no longer readable. This is useful to know in case you are planning on working with these meshes at runtime. For example, if you need to read mesh vertex data at runtime, you will need to uncheck this;
    • Ignore objects in hierarchies - if this is checked, the tool will ignore objects that are part of a hierarchy and it will combine only standalone objects (objects that have no children and no parent);
    • Collider handling - this allows you to specify how the tool should handle coliders. Possible options are: No Colliders - the tool will just ignore colliders and no colliders will be attached to the combined meshes; Preserve - the tool will preserve the colliders of the objects from which the meshes originated; Create New - the tool will create a new collider for each combined mesh. I am not going to describe these here, I am planning on releasing a tutorial video for this, but if any of you have any questions, please drop a buzz :)
    • Combine children - this allows you to combine all the children in a specified parent object;
    • Combine selection - this allows you to combine the selected objects (the objects selected via Octave3D select mode). Here you can also specify a destination parent (the last control at the bottom) and also to the right of the button you can see there is a popup which allows you to specify how the selected objects will be combined. Possible options are: Duplicate - this is actually the same as when combining children in a parent. It just creates a new parent with the combined meshes and leaves the original objects behind. Replace - after the objects were combined, the tool will delete the selected objects leaving you with only the combined result.
    I am planning on making some more GUI changes in the next version and once I feel confident that the GUI will not change too much in the future, I will start releasing some new video tutorials in which I am going to go over features that I believe are important but are not covered anywhere.

    That's about it! :)

    Thanks,
    Andrew
     
    AGregori and Mark_01 like this.
  13. ayk

    ayk

    Joined:
    Nov 14, 2013
    Posts:
    58
    I can't get Block, Path, or Deco (Brush) placement modes to work in 2D mode. Is there some setting that I'm missing to get these working?
     
  14. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,893
    You first need to ensure the scene grid is rotated 90 (actually set it to 270 because orientation matters) degree around the X axis.
    GridRotation.png

    For Block and Path, you need to press the E key until the green plane is aligned with the grid.
    PlaneALignment.png

    For Decor Paint, you need to uncheck the ignore grid toggle:
    UncheckIgnroegrid.png

    This should be all. Let me know if it works.

    Cheers,
    Andrew
     
  15. ayk

    ayk

    Joined:
    Nov 14, 2013
    Posts:
    58
    Awesome, "E" did the trick for Block and Path modes. For Decor Paint Brush mode, I actually had Align to Surface set to Positive Up, so once I changed that to Positive Look, it worked! Thanks for your assistance :)
     
  16. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,893
    AA.. Ok. Forgot about the axis alignment :D Thanks for letting me know! Glad to hear its working!
     
  17. RecursiveRuby

    RecursiveRuby

    Joined:
    Jun 5, 2013
    Posts:
    163
    Hey this may be a silly question but how do you delete prefab categories? I can't find the option for it anywhere.
     
  18. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,893
    :) In the prefab management window, right below the area where the prefabs are displayed, there is a section called Actions . Expand it and you will get access toa bunch of buttons one of which is called Remove active category.

    Most of these buttons will disappear in the next update and they will be replaced with menu items inside a context menu.
     
  19. Char222

    Char222

    Joined:
    Nov 5, 2015
    Posts:
    10
    Hello, I followed the intro video but for somehow the prefab previews didn't looked right. Did I miss something? Capture.JPG
     
  20. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,893
    Hi there Char222,

    Thanks for contacting me.

    You didn't miss anything. Prefab previews are given to me by the Unity Editor API and I have absolutely no control over the image that gets generated. This problem has never happened to me before and I am sure it is not an Octave3D issue. Can you please specify the Unity version you are using? My advice is to avoid using beta versions.

    Thanks,
    Andrew
     
  21. Char222

    Char222

    Joined:
    Nov 5, 2015
    Posts:
    10
    The version of Unity I use is 5.6.1f1 . The preview of the prefab in inspector looks good though.
    Capture.JPG
    Capture.JPG
     
  22. ayk

    ayk

    Joined:
    Nov 14, 2013
    Posts:
    58
    I've had the same issue with Synty's Apocalypse set, and I think this is caused by the way they make their models. I've not had this issue with any other asset pack from the store.
     
  23. Char222

    Char222

    Joined:
    Nov 5, 2015
    Posts:
    10
    This issue also occurred with the Quantum Theory's Polyworld pack.
     
  24. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,893
    @Char222

    I will look into this right away. What I would like you to understand is that it is very likely that this is not an Octave3D issue.This image is given to me by the Unity API. Until then, maybe you can try re-importing the prefab assets or creating a new project if that is possible?
     
  25. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,893
    @Char222

    I have managed to reproduce the same issue in Unity 5.6.1 with other assets. I am now checking if this happens with earlier versions of Unity and I will also perform some tests outside of Octave3D to check if this is a Unity bug. I will keep you posted as soon as I have some relevant info.
     
  26. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,893
    @Char222

    Tested the same models in Unity 5.6.0 and everything works like a charm. I will now continue with some tests independent of Octave3D (separate project). If the test passes in 5.6.0 but not in 5.6.1, I am tempted to believe this is a Unity bug and I will submit a bug report.

    EDIT: Can you also please make a test with your models on 5.6.0?
     
    Last edited: Jun 5, 2017
  27. Char222

    Char222

    Joined:
    Nov 5, 2015
    Posts:
    10
    I don't have 5.6.0 installed but I've tested in 5.5.2 and there are no problems. I also found out that if I duplicate one prefab and delete it, then if I drag any individual prefab under the same folder into prefab window, the prefab review look goods. But if I drag entire folder into it, the previews are still bad except those which had been added individually.
     
  28. Char222

    Char222

    Joined:
    Nov 5, 2015
    Posts:
    10
    I updated Unity to 5.6.1p2 and problem solved.
     
  29. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,893
    :) Glad to hear that. I was just about to send you a test project in which the same problem can be reproduced without the Octave3D package imported. I can still send it if you wish, but I am glad this issue was solved :)
     
  30. thatscraigz

    thatscraigz

    Joined:
    Mar 27, 2015
    Posts:
    100
    Hi there! Been using the O3D for about a week now, absolutely love it :) so thank you for making it!

    So I've got an issue when updating to the latest version though, saying there's already a namespace for MeshCombiner - any advice?

    Would love to get this sorted out superquick! :D

    thanks!

    craigz

     
  31. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,893
    Hi there craigz,

    This can happen when I make an update and remove files from the package or rename files etc. When this type of error happens, you need to delete the package and do a clean import. This is because the updated does not cleanup any unnecessary unused files and these can cause trouble.

    Let me know if this worked.

    All the best,
    Andrew
     
  32. thatscraigz

    thatscraigz

    Joined:
    Mar 27, 2015
    Posts:
    100
    Worked like a charm! Thank you so much Andrew! :D

    -craigz
     
  33. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,893
    No problem! Glad to hear it works :)
     
  34. ChopSui

    ChopSui

    Joined:
    Dec 20, 2016
    Posts:
    8
    Hi, thanks for the editor! It's been a big help.

    I have a few questions:

    Is it safe to move the Octave 3D World Builder folder out of the root of the project once it's installed? I like to keep all of my packages inside a Packages folder instead of the root.

    Also, I'm not sure if this is related, but when I run my game with the Octave 3D in the scene, I get the following errors:


    ArgumentNullException: Argument cannot be null.
    Parameter name: Object to be destroyed cannot be null.
    O3DWB.UndoEx.DestroyObjectImmediate (UnityEngine.Object gameObject) (at Assets/Packages/Octave3D World Builder/Scripts/Undo/UndoEx.cs:31)
    O3DWB.PrefabCategory.RemoveAndDestroyAllPrefabs () (at Assets/Packages/Octave3D World Builder/Scripts/Assets/Prefab Categories/PrefabCategory.cs:207)
    O3DWB.PrefabCategory.OnDestroy () (at Assets/Packages/Octave3D World Builder/Scripts/Assets/Prefab Categories/PrefabCategory.cs:293)
    UnityEngine.Object:DestroyImmediate(Object)
    O3DWB.ScriptableObjectPool:DestroyAllScriptableObjects() (at Assets/Packages/Octave3D World Builder/Scripts/ScriptableObjectPool.cs:42)
    O3DWB.ScriptableObjectPool:OnDestroy() (at Assets/Packages/Octave3D World Builder/Scripts/ScriptableObjectPool.cs:56)


    MissingReferenceException: The object of type 'Octave3DWorldBuilder' has been destroyed but you are still trying to access it.
    Your script should either check if it is null or you should not destroy the object.
    O3DWB.Octave3DWorldBuilder.CreateScriptableObjectPool () (at Assets/Packages/Octave3D World Builder/Scripts/Octave3DWorldBuilder.cs:576)
    O3DWB.Octave3DWorldBuilder.get_ScriptableObjectPool () (at Assets/Packages/Octave3D World Builder/Scripts/Octave3DWorldBuilder.cs:89)
    O3DWB.Octave3DWorldBuilder.CreateScriptableObject[PrefabFilter] () (at Assets/Packages/Octave3D World Builder/Scripts/Octave3DWorldBuilder.cs:291)
    O3DWB.PrefabCategory.get_PrefabFilter () (at Assets/Packages/Octave3D World Builder/Scripts/Assets/Prefab Categories/PrefabCategory.cs:38)
    O3DWB.PrefabCategory.GetFilteredPrefabs () (at Assets/Packages/Octave3D World Builder/Scripts/Assets/Prefab Categories/PrefabCategory.cs:248)
    O3DWB.PrefabCategory.EnsureActivePrefabPassesPrefabFilter () (at Assets/Packages/Octave3D World Builder/Scripts/Assets/Prefab Categories/PrefabCategory.cs:282)
    O3DWB.PrefabCategory.RemoveAndDestroyAllPrefabs () (at Assets/Packages/Octave3D World Builder/Scripts/Assets/Prefab Categories/PrefabCategory.cs:204)
    O3DWB.PrefabCategory.OnDestroy () (at Assets/Packages/Octave3D World Builder/Scripts/Assets/Prefab Categories/PrefabCategory.cs:293)

    Could you elaborate a little on how having Octave 3D object in a scene affects the final build of the game? Does it all get stripped out at compile time? In other words, if you have two identical scenes, but one built using Octave 3D (with its associated objects still in the scene) and one without, will the final compiled game be the same size?
     
  35. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,893
    Hi there @ChopSui

    Thanks for contacting me!

    Yes, it is perfectly safe to move the Octave3D package folder anywhere you wish.

    Regarding the errors, that should not happen. I will look into it and reach back to you as soon as possible, but until then, do you think you could try to delete the current package and reimport? This is especially important if you are updating from an earlier version.

    All scripts which Octave3D is using are compiled only inside the Editor. So they should not affect the final build of the game at all. I do not know if Unity includes any additional info in the final build even for editor scripts, but if there is any additional data added, it should be really small.

    Hope this helps.

    Cheers,
    Andrew
     
  36. ChopSui

    ChopSui

    Joined:
    Dec 20, 2016
    Posts:
    8
    Thanks for the quick response! This is the first time I have used O3D so I did not upgrade from an earlier version, but I will try the re-import just for good measure. I'll let you know if it makes a difference.

    UPDATE: I deleted the O3D package and reimported but I still get the errors at runtime. Here is a screenshot so you can see how my project is laid out:

    O3D_error.png

    Octave3D is the game object that O3D is attached to and Environment is the Object Group that all of the prefabs are attached to.
     
    Last edited: Jun 18, 2017
  37. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,893
    No problem! I just managed to reproduce the error in 5.6.1. I will start working on a fix and get back at you ASAP.
     
    ChopSui likes this.
  38. ChopSui

    ChopSui

    Joined:
    Dec 20, 2016
    Posts:
    8
    Excellent! Thanks again.
     
  39. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,893
    Hi @ChopSui

    I sent you a PM with the fixed package. Thanks a lot for reporting this to me!
     
  40. ChopSui

    ChopSui

    Joined:
    Dec 20, 2016
    Posts:
    8
    Thanks, that did the trick! I will let you know if I have any more issues.
     
  41. ChopSui

    ChopSui

    Joined:
    Dec 20, 2016
    Posts:
    8
    Hi there, I found one more bug. I consider this one less serious because there is a workaround, but I wanted to bring it to your attention.

    In my project (same as the screenshot in my earlier post), if I have the Octave3D object selected when I click the Run button to play the game, I get no errors (after the update you sent me). However, if I have anything else in the scene selected, then click the Run button, I get errors. For instance, if I have the camera selected, then click run to play the scene, I will get the following error:


    NullReferenceException: Object reference not set to an instance of an object
    O3DWB.ObjectPlacementPath.get_Settings () (at Assets/Packages/Octave3D World Builder/Scripts/Objects/Object Placement/Path/ObjectPlacementPath.cs:39)
    O3DWB.PathObjectPlacement.get_PathSettings () (at Assets/Packages/Octave3D World Builder/Scripts/Objects/Object Placement/Path/PathObjectPlacement.cs:18)
    O3DWB.ObjectPlacement.RespondToMessage (O3DWB.PrefabWasRemovedFromCategoryMessage message) (at Assets/Packages/Octave3D World Builder/Scripts/Objects/Object Placement/ObjectPlacement.cs:647)
    O3DWB.ObjectPlacement.RespondToMessage (O3DWB.Message message) (at Assets/Packages/Octave3D World Builder/Scripts/Objects/Object Placement/ObjectPlacement.cs:605)
    O3DWB.MessageListenerDatabase.SendMessageToListeners (O3DWB.Message message, System.Collections.Generic.HashSet`1 listeners) (at Assets/Packages/Octave3D World Builder/Scripts/Messaging System/MessageListenerDatabase.cs:100)
    O3DWB.MessageListenerDatabase.SendMessageToInterestedListeners (O3DWB.Message message) (at Assets/Packages/Octave3D World Builder/Scripts/Messaging System/MessageListenerDatabase.cs:59)
    O3DWB.PrefabWasRemovedFromCategoryMessage.SendToInterestedListeners (O3DWB.PrefabCategory prefabCategory, O3DWB.Prefab prefabWhichWasRemoved) (at Assets/Packages/Octave3D World Builder/Scripts/Messaging System/PrefabMessages.cs:64)
    O3DWB.PrefabCategory.OnDestroy () (at Assets/Packages/Octave3D World Builder/Scripts/Assets/Prefab Categories/PrefabCategory.cs:297)
    UnityEngine.Object:DestroyImmediate(Object)
    O3DWB.ScriptableObjectPool:DestroyAllScriptableObjects() (at Assets/Packages/Octave3D World Builder/Scripts/ScriptableObjectPool.cs:42)
    O3DWB.ScriptableObjectPool:OnDestroy() (at Assets/Packages/Octave3D World Builder/Scripts/ScriptableObjectPool.cs:56)

    Let me know if you need more details.
     
  42. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,893
    Oh... Sorry about that. It seems that the problem is much more serious :) I will start working on it and deliver a stable solution as quick as I can. It's getting somewhat close to midnight here, so it might have to wait until tomorrow. I will let you know when it's ready or if I need any more details. For now, this should do it though.
     
  43. ChopSui

    ChopSui

    Joined:
    Dec 20, 2016
    Posts:
    8
    No problem Thanks for taking a look at it
     
  44. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,893
    Hi there @ChopSui

    I've sent you a PM with the fix. It should be working really well now :)
     
  45. ChopSui

    ChopSui

    Joined:
    Dec 20, 2016
    Posts:
    8
    Hi Andrew,

    That appears to do the trick! No more errors. Thanks again. :)
     
  46. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,893
    No problem :) Glad it's working now!
     
  47. LunaTrap

    LunaTrap

    Joined:
    Apr 10, 2015
    Posts:
    120
    @XGT08

    Ok, I give up, the asset works great, but for the love of the sun, how do I do so the prefab is created as a child of the desired object? right now is always created at the scene root.
     
    Last edited: Jul 3, 2017
  48. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,893
    Hi @LunaTrap,

    In the previous versions of the tool the objects were created as children of the Octave3D object (the one with the Octave script attached to it), but there were quite a few customers who complained about that because for them it was to restrictive, so I eliminated that restriction :)

    However, you can use object groups to attach your prefabs to different types of objects. Please take a look at this video tutorial. It's not an official tutorial, it's just something I made for another customer with pretty much the same question.

    Let me know if that helps.

    Cheers,
    Andrew
     
    Mark_01 likes this.
  49. LunaTrap

    LunaTrap

    Joined:
    Apr 10, 2015
    Posts:
    120
    Thanks! will check it out!
     
  50. Char222

    Char222

    Joined:
    Nov 5, 2015
    Posts:
    10
    Hello, I built a development build and got those errors. Do I need to remove octave before building?
    Capture.JPG