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. Join us on Dec 8, 2022, between 7 am & 7 pm EST, in the DOTS Dev Blitz Day 2022 - Q&A forum, Discord, and Unity3D Subreddit to learn more about DOTS directly from the Unity Developers.
    Dismiss Notice
  3. Have a look at our Games Focus blog post series which will show what Unity is doing for all game developers – now, next year, and in the future.
    Dismiss Notice

[RELEASED] RayFire for Unity. Runtime demolition and fragmentation plugin.

Discussion in 'Assets and Asset Store' started by Mir-vadim, May 8, 2019.

  1. RicardCG

    RicardCG

    Joined:
    Dec 12, 2017
    Posts:
    6
    Hi @Mir-vadim!

    Thanks for the feedback and workaround! For now with that knowledge in mind this is enough to get us by till the next update material wise :)

    However we have run into another issue. When using the reduce keys function we have a set of meshes that immediately shift out of place no matter how low we set the threshold. it seems we are automatically missing the first set of keyframes from any animation we record or animations that are supposed to start later happen immediately on start.

    This occurs no matter how high or low the frame rate of the recording is set. From 3 to 45 the issue is the same, if not exacerbated by the higher frame rate.

    ReduceKeys_3Rate.PNG ReduceKeys_45Rate.PNG


    This is actually a fairly important issue on our end, Is there something we are missing in our settings or is this something that can be fixed?
     
    Last edited: Dec 12, 2020
  2. Mir-vadim

    Mir-vadim

    Joined:
    Apr 18, 2017
    Posts:
    236
    Hi, yeah, I fixed this issue, in the attachment you can get fixed scripts.
    Put them in Assets\RayFire\Scripts\Components and Assets\RayFire\Scripts\Classes
    accordingly. Let me know if you still will get problems with reducing keys.
     

    Attached Files:

  3. RicardCG

    RicardCG

    Joined:
    Dec 12, 2017
    Posts:
    6
    Hi @Mir-vadim,

    The start animation issue no longer seems to be a problem, Thanks! To confirm from our tests, the higher the threshold is the less compression is applied?

    Also, the animations seem to feel slower during playback, as some of the debris seem to drift toward the ground rather than follow the animation as expected.

    Is this a side effect of the key reduction?
     
    Last edited: Dec 12, 2020
  4. Mir-vadim

    Mir-vadim

    Joined:
    Apr 18, 2017
    Posts:
    236
    Nice :)
    The higher threshold the more keys will be removed. With 0 threshold it only removes keys if neighbor keys has the same value. WIth a positive threshold it starts to remove keys with little difference. Keys reduction doesn't change timing of keys, so I don't think this is because of key reduction. Did you test playback for these debris with reduced keys and without?
     
  5. nobluff67

    nobluff67

    Joined:
    Nov 3, 2016
    Posts:
    307
    Hi,

    Can you repair the demolition? e.g. Break cube into x pieces, then repair cube to pre demolition state (worst case scenario I guess would can create a duplicate of the original cube.
     
  6. Mir-vadim

    Mir-vadim

    Joined:
    Apr 18, 2017
    Posts:
    236
    Hi, there is Reset feature in Rigid component which lets you restore demolished objects. You can also keep all fragments or meshes which were created at first demolition and then reuse them as well. when object will be demolished again.
     
    nobluff67 likes this.
  7. MikhaskoS

    MikhaskoS

    Joined:
    Jun 24, 2018
    Posts:
    42
    Hi.
    Preliminarily: RayFire Shatter... then
    Object Type : Mesh Root (At Start, Dynamic, Runtime)
    Fading : (On Demolition &, || On Activation), Fide Type (Scale Down)... not work. Why? ( Connected Cluster works well)
     
  8. Dharmadehin

    Dharmadehin

    Joined:
    Apr 3, 2018
    Posts:
    1
    Step by step text tutorial pls. how to break an object from a collision or event from empty scene? How to prepare object (solid mesh or it doesn`t matter) scale...ect. the minimum set of components of your asset, which of them i need to add for basic destruction, where the components of the asset should be duplicated, if necessary. Can all the preparation for simulation be done without pressing the play button (in editor mode)... When to wait for help, documentation, tooltips that explain the work of the asset, and is easy to use Rayfire from scratch.
     
    Last edited: Dec 16, 2020
  9. RafaelGuimaraesBarbosa

    RafaelGuimaraesBarbosa

    Joined:
    Dec 14, 2019
    Posts:
    15
    Hello, is there any way to delete the LODs when destroying an object or will I have to do this on my own using scripts?
     
  10. homemacai

    homemacai

    Joined:
    Jul 22, 2020
    Posts:
    50
    Hello, I believe RayFire does not support IL2CPP backend scripting right, because when i build my game, the error log shows some rayfire components, but I guess it will come when the support for other platforms arrive?
     
  11. RicardCG

    RicardCG

    Joined:
    Dec 12, 2017
    Posts:
    6

    Hi @Mir-vadim,

    We did and apples to apples comparison and discovered that the threshold if set too low seems to have some kind of slowdown effect. Not sure why. It doesn't show up in the original animation with compression.

    That said another quirk on our side with the script, the higher the threshold, the less frames it compresses. It still works mind you just opposite of what I expected. Also, High FPS animations are less susceptible to the compression issues than low FPS animations. I have to Drop the the threshold below 0.0001 to get the same kind of slow down inconsistencies I was before for 3, 5, and 15 frames.

    I suspect something else might be at play here, are there any changes incoming in the next update that could be affecting this? We are using Unity 2020.1.8f1 if that is helpful.
     
  12. Kjelle69

    Kjelle69

    Joined:
    Nov 9, 2016
    Posts:
    51
    I recently bought this plugin and it's really fun to play around with.
    Are there any Cool demo's out there of things that have been made with the help of Rayfire in Unity? :)
     
  13. Mir-vadim

    Mir-vadim

    Joined:
    Apr 18, 2017
    Posts:
    236
    Hi, sorry, but I didn't create yet such demo, mostly because I am not a game developer and it will need a lot of time which I can spend much more useful by fixing bugs and adding requested features. Most of requested features were added so now I have some time for documentation and hopefully I will create some demo using free Unity game assets.
     
    Kjelle69 likes this.
  14. Mir-vadim

    Mir-vadim

    Joined:
    Apr 18, 2017
    Posts:
    236
    Hi, We didn't test IL2CPP yet, but can you send me this error log?
     
  15. Mir-vadim

    Mir-vadim

    Joined:
    Apr 18, 2017
    Posts:
    236
    Hi, for now there is no special support for LODs, this is requested feature for next release, or for release after next release.
     
  16. Mir-vadim

    Mir-vadim

    Joined:
    Apr 18, 2017
    Posts:
    236
    Hi, I am working on new documentation at this moment and there will be a bunch of text HowTo tutorials that will cover the most used features. I will try to release the next build with new documentation in 2-3 weeks, will work on them during New Year holidays.
     
  17. Mir-vadim

    Mir-vadim

    Joined:
    Apr 18, 2017
    Posts:
    236
    Hi, will test such combination. but can you provide more info, please? So it demolished every child of object with Mesh Root rigid using Shatter properties but these fragments do not fade down by scaling?
     
  18. Mir-vadim

    Mir-vadim

    Joined:
    Apr 18, 2017
    Posts:
    236
    Just tried this setup and all works ok for me, seems like you are missing something in your setup. Can you describe what happens after you start play mode and what you expect to happen?
     
  19. Mir-vadim

    Mir-vadim

    Joined:
    Apr 18, 2017
    Posts:
    236
    I will test this threshold issue better next time. This feature can not be affected by Unity version, it simply deletes keys if they do not differ too much from its neighbors. And it is really weird that animation with threshold looks slower because it doesn't change key position on the timeline.
     
  20. Kjelle69

    Kjelle69

    Joined:
    Nov 9, 2016
    Posts:
    51
    I totally understand, my purpose with the question was open to everyone on this forum, if someone would like to share some cool video of the work they are doing.

     
  21. Flawless83

    Flawless83

    Joined:
    Dec 7, 2016
    Posts:
    121
    How optimized if at all is this for mobile?
     
  22. Mir-vadim

    Mir-vadim

    Joined:
    Apr 18, 2017
    Posts:
    236
    Users who tried it on mobile report that performance is good, but as always in such cases, I can send you full package to try it by yourself before buying. Let me know if you are interested.
     
  23. MikhaskoS

    MikhaskoS

    Joined:
    Jun 24, 2018
    Posts:
    42
    Hi. Increase solidity. Shards of the first level do not disappear. The others disappear. For Connected Cluster, the first-level shards disappear. Maybe that's what it's meant to be.
     
  24. Mir-vadim

    Mir-vadim

    Joined:
    Apr 18, 2017
    Posts:
    236
    Hi, connected cluster should not have second-level shards, only one level. To use several levels you need to use Nested Cluster. I will test such behavior and maybe will add some warning, but Connected Cluster creates Shards only for first level children.
     
    Last edited: Dec 24, 2020
  25. arpan018

    arpan018

    Joined:
    Nov 30, 2020
    Posts:
    4
    hello @Mir-vadim
    I am using the asset and having crashes for unity 2019.2.0f1, latest asset and Mac OS 10.15.7. after reimporting it started to working great but dont know, if it will crash again or not.
    Lets say i want to make effect like shatter object from static blade(cube or cube base collider), when ever Rayfire Rigid touches the collider. i.e chopper shattering some objects when it touches the blades from up to down motion.
     
  26. Mir-vadim

    Mir-vadim

    Joined:
    Apr 18, 2017
    Posts:
    236
    hi, let me know if it will crash again.

    As for the second part of your message, is it a question how to create what you mentioned? Or this is what you did when it crashed?
     
  27. brinca

    brinca

    Joined:
    Mar 29, 2015
    Posts:
    33
    I've finally got around to test this, and it does work (no more build issues on Linux), but I'm guessing I won't be able to use the library on Linux, is that right?
     
  28. Mir-vadim

    Mir-vadim

    Joined:
    Apr 18, 2017
    Posts:
    236
    Yeah, we need to compile special libs for Linux.
     
  29. arpan018

    arpan018

    Joined:
    Nov 30, 2020
    Posts:
    4
    I want to create that mechanism. also i want to ask is there any way that i can shatter object and make prefab out of it with sub parts?
     
  30. yendou

    yendou

    Joined:
    Jan 17, 2017
    Posts:
    7
    Hello,
    thank You for the great plugin.
    Please,if You can help or if someone knows,how to do this properly:

    Im using Connectivity like in your tutorials, parent with Connectivity and all chunk meshes as children.
    Is it possible to reset the whole structure when using clusterize?
    Or without it?Can i reset and reuse these in runtime somehow?

    When i reset the children,then reset the connectivity,gizmos show its connected again,but the collapse isnt working anymore

    Thanks a lot and keep it up,i love the package
     
    Last edited: Jan 2, 2021
  31. Mir-vadim

    Mir-vadim

    Joined:
    Apr 18, 2017
    Posts:
    236
    Hi, to be honest, I didn't test Restriction component with Connectivity which clusterize a group of fragments. For now reset works only for Mesh and Cluster object type, so I think I will need to add special Reset button inside Connectivity component since it manages all children. So, unfortunately, for now I suggest you to destroy and instantiate whole structure, but I will add Connectivity Reset in next build.
     
  32. Mir-vadim

    Mir-vadim

    Joined:
    Apr 18, 2017
    Posts:
    236
    If you want to shatter object using Blade then you need to set Action Type in Balde to Demolish instead of Slice.

    As for making prefab, after you fragmented object using Shatter component you need to export fragment's meshes into Unity Asset so it will reference meshes to this asset, then you can create Prefab with all fragments.
     
  33. yendou

    yendou

    Joined:
    Jan 17, 2017
    Posts:
    7
    Thats very nice,im looking forward.Thanks for the fast reply.If You happen to find any tips and suggestions for this use case,let me know here.
    I very much need just the connectivity to setup connected cluster from children just as in your tutorial scenes,RayFire may be a bit overkill just for this,but i really like what you do and would love to continue using it.

    EDIT: not only reset, but runtime setup of the cluster, for procedural structures, if that is possible
     
    Last edited: Jan 6, 2021
  34. Mir-vadim

    Mir-vadim

    Joined:
    Apr 18, 2017
    Posts:
    236
    Hi, Just checked and Connectivity component can be applied in runtime and it worked well, creates connected structure. Or did you mean something else?
     
    Last edited: Jan 8, 2021
  35. yendou

    yendou

    Joined:
    Jan 17, 2017
    Posts:
    7
    Hello
    Then its perfect:).Thats what i meant.
    I was trying to enable the connectivity component or initialize it somehow, but not create it at runtime.
    Structure was created,but was not breaking correctly,nevermind.
    Testing asap again and will edit this post with result.

    edit: It works, but it was a stupid idea for workaround, i need to reset it anyway, i will leave it for later
     
    Last edited: Jan 11, 2021
  36. spinaljack

    spinaljack

    Joined:
    Mar 18, 2010
    Posts:
    946
    Has multithreading been implemented in runtime fragmenting?
     
  37. RakNet

    RakNet

    Joined:
    Oct 9, 2013
    Posts:
    289
  38. Mir-vadim

    Mir-vadim

    Joined:
    Apr 18, 2017
    Posts:
    236
    That is great :) Thanks for letting us know.
    You can describe how exactly you edited code and for what so maybe I will add the same functionality in plugin.
     
  39. Mir-vadim

    Mir-vadim

    Joined:
    Apr 18, 2017
    Posts:
    236
    Hi, yes it is implemented but there is no much use out of it because you can start seeing benefits of multithreading when there break object to a lot of fragments, about 100, this is when there is advantage for spreading fragments generation over several threads. But for now you can demolish only low poly objects for 20-30 fragments in runtime in order to keep framerate high enough, so multithreading support not so useful as we expected it to be.
     
  40. thog

    thog

    Joined:
    Dec 9, 2012
    Posts:
    4
    Hi @Mir-vadim! Great asset :)

    So I am using a pre-shattered asset in a zero-gravity environment as a dynamic connected cluster (think spaceship), and it works. What I'd like to see is the ability to set the activation to offset. The problem as far as I can tell is that activation via offset is offset from worldspace, not localspace relative to parent. The result being that the root Rigid object cannot be dynamic AND use activation by offset as offset is strictly relative to worldspace.

    Is this the case or did I miss something?
     
  41. Mir-vadim

    Mir-vadim

    Joined:
    Apr 18, 2017
    Posts:
    236
    Hi. Well, this is how activation works, I mean the word itself means that it activates something that is not active = inactive = not dynamic object. I understand what and why you need but I guess I need to add something different for what you want to create. If you want to have a dynamic connected cluster and then start to detach its shards (single piece of the cluster) you can start to shoot it at these shards, in this case, Cluster will be demolished and these shards will be released and get their own Rigid component and will be simulated separately. But detaching them by offset is not considered for connected cluster because again, this is whole point of using cluster, it allows to simulate group of object as one solid object and then demolish it step by step.
     
  42. thog

    thog

    Joined:
    Dec 9, 2012
    Posts:
    4
    Yeah I figured that was the case. I was just hoping to get a beat-up / dented look before shards started detaching. Thanks for the clarification!
     
  43. paulraubic

    paulraubic

    Joined:
    Dec 27, 2013
    Posts:
    3
    Hi,

    I'm seeing a crash of Unity when using the blade (crash also occurs on mobile phone). The crash is not 100% deterministic but it happens very frequently whenever I slice an object 3 or 4 times. I noticed the following stack traces (two separate crash logs from Unity's Editor.log):

    Code (CSharp):
    1. ations/Unity/Hub/Editor/2020.1.2f1/Unity.app/Contents/Frameworks/Mono/lib/libAssets/Plugins/RayFire/Plugins/Mac/libRF_CNative.bundle
    2. libc++abi.dylib: terminating with uncaught exception of type std::length_error: vector
    3. Obtained 52 stack frames.
    4. #0  0x007fff76f13e3e in __pthread_kill
    5. #1  0x007fff76e70312 in abort
    6. #2  0x007fff74e4bf8f in __cxa_bad_cast
    7. #3  0x007fff74e4c113 in default_terminate_handler()
    8. #4  0x007fff761d6eab in _objc_terminate()
    9. #5  0x007fff74e677c9 in std::__terminate(void (*)())
    10. #6  0x007fff74e6726d in __cxxabiv1::exception_cleanup_func(_Unwind_Reason_Code, _Unwind_Exception*)
    11. #7  0x007fff74e1f797 in std::__1::__vector_base_common<true>::__throw_length_error() const
    12. #8  0x000001b6a46830 in std::__1::vector<unsigned long, std::__1::allocator<unsigned long> >::vector(std::__1::vector<unsigned long, std::__1::allocator<unsigned long> > const&)
    13. #9  0x000001b6a78e3f in RayFire::RFMesh::rebuildVFacesByDead(bool)
    14. #10 0x000001b6a41197 in RayFire::Shatter::ParallelBrickSimpleSlice::operator()(RayFire::base_range<int> const&) const
    15. #11 0x000001b6a2ddb8 in RayFire::Shatter::ParallelBrickSimpleSlice::ApplyProc()
    16. #12 0x000001b6a2b646 in RayFire::Shatter::RFShatter::SimpleFragment(int, RayFire::Shatter::RFShatterMode, std::__1::map<int, bool, std::__1::less<int>, std::__1::allocator<std::__1::pair<int const, bool> > >&, bool, bool)
    17. #13 0x000001b6a0f192 in RayFire::Shatter::RFShatter::ModifyObject(int, std::__1::map<int, bool, std::__1::less<int>, std::__1::allocator<std::__1::pair<int const, bool> > >&, bool, bool, RayFire::RFInterval)
    18. #14 0x000001b6acc4e6 in Sl_Compute
    19. #15 0x0000019aa90a96 in  (wrapper managed-to-native) RayFire.DotNet.RFShatter:Sl_Compute (void*&,int*,int,int*,bool) {0x7fdc89eb7f60} + 0x96 (0x19aa90a00 0x19aa90b23) [0x17bbb1960 - Unity Child Domain]
    20. #16 0x0000019aa8f05b in  RayFire.RFFragment:Compute (int,RayFire.DotNet.RFShatter,UnityEngine.Transform,UnityEngine.Mesh[]&,UnityEngine.Vector3[]&,UnityEngine.Mesh,int,System.Collections.Generic.List`1<System.Collections.Generic.Dictionary`2<int, int>>&,UnityEngine.Object,System.Collections.Generic.List`1<int>) {0x7fdc86ff2d90} + 0x8b (0x19aa8efd0 0x19aa8f648) [0x17bbb1960 - Unity Child Domain]
    21. #17 0x0000019a2da7a3 in  RayFire.RFFragment:SliceMeshes (UnityEngine.Mesh[]&,UnityEngine.Vector3[]&,System.Collections.Generic.List`1<RayFire.RFDictionary>&,RayFire.RayfireRigid,System.Collections.Generic.List`1<UnityEngine.Vector3>) {0x7fdc86ff2d68} + 0x4f3 (0x19a2da2b0 0x19a2daad3) [0x17bbb1960 - Unity Child Domain]
    22. #18 0x0000019a2d97db in  RayFire.RFDemolitionMesh:SliceMesh (RayFire.RayfireRigid) {0x7fdc86feebb8} + 0x10b (0x19a2d96d0 0x19a2da079) [0x17bbb1960 - Unity Child Domain]
    23. #19 0x0000019a2d9683 in  RayFire.RayfireRigid:Slice () {0x7fdc86f55128} + 0x33 (0x19a2d9650 0x19a2d96ac) [0x17bbb1960 - Unity Child Domain]
    24. #20 0x0000017b4204c0 in mono_jit_runtime_invoke
    25. #21 0x0000017b5e2f75 in do_runtime_invoke
    26. #22 0x0000017b5e2ed3 in mono_runtime_invoke
    27. #23 0x00000108dff877 in scripting_method_invoke(ScriptingMethodPtr, ScriptingObjectPtr, ScriptingArguments&, ScriptingExceptionPtr*, bool)
    28. #24 0x00000108df9257 in ScriptingInvocation::Invoke(ScriptingExceptionPtr*, bool)
    29. #25 0x00000108da8abc in Coroutine::InvokeMoveNext(ScriptingExceptionPtr*)
    30. #26 0x00000108da82bf in Coroutine::Run(bool*)
    31. #27 0x00000108173093 in DelayedCallManager::Update(int)
    32. #28 0x0000010862eae3 in InitPlayerLoopCallbacks()::UpdateScriptRunDelayedDynamicFrameRateRegistrator::Forward()
    33. #29 0x00000108610dbe in ExecutePlayerLoop(NativePlayerLoopSystem*)
    34. #30 0x00000108610e2a in ExecutePlayerLoop(NativePlayerLoopSystem*)
    35. #31 0x000001086110cc in PlayerLoop()
    36. #32 0x00000109b1e782 in PlayerLoopController::UpdateScene(bool)
    37. #33 0x00000109b10647 in PlayerLoopController::UpdateSceneIfNeeded()
    38. #34 0x00000109b0de2a in Application::TickTimer()
    39. #35 0x0000010bdfdc55 in -[EditorApplication TickTimer]
    40. #36 0x007fff5167b5b9 in __NSFireTimer
    41. #37 0x007fff4f52dbb4 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__
    42. #38 0x007fff4f52d827 in __CFRunLoopDoTimer
    43. #39 0x007fff4f52d32a in __CFRunLoopDoTimers
    44. #40 0x007fff4f52492b in __CFRunLoopRun
    45. #41 0x007fff4f523d23 in CFRunLoopRunSpecific
    46. #42 0x007fff4e83be26 in RunCurrentEventLoopInMode
    47. #43 0x007fff4e83bb96 in ReceiveNextEventCommon
    48. #44 0x007fff4e83b914 in _BlockUntilNextEventMatchingListInModeWithFilter
    49. #45 0x007fff4cb06f5f in _DPSNextEvent
    50. #46 0x007fff4d29cb4c in -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:]
    51. #47 0x007fff4cafbd6d in -[NSApplication run]
    52. #48 0x007fff4cacaf1a in NSApplicationMain
    53. #49 0x0000010be3bb97 in EditorMain(int, char const**)
    54. #50 0x0000010be3bd39 in main
    55. #51 0x007fff76dc4115 in start
    56. Launching bug reporter
    57. [Unity Package Manager (Upm)]
    58. Parent process [7116] was terminated
    59. qt.network.ssl: Error receiving trust for a CA certificate
    60. QObject: Cannot create children for a parent that is in a different thread.
    61. (Parent is QObject(0x7fe43f900210), parent's thread is QThread(0x7fe43940ca90), current thread is Thread(0x7fe43f877a30)
    Code (CSharp):
    1.  
    2. Obtained 43 stack frames.
    3. #0  0x000001a772878a in RayFire::RFMesh::rebuildEdges(bool, bool)
    4. #1  0x000001a76ef21a in RayFire::Shatter::ParallelBrickSimpleSlice::operator()(RayFire::base_range<int> const&) const
    5. #2  0x000001a76dbdb8 in RayFire::Shatter::ParallelBrickSimpleSlice::ApplyProc()
    6. #3  0x000001a76d9646 in RayFire::Shatter::RFShatter::SimpleFragment(int, RayFire::Shatter::RFShatterMode, std::__1::map<int, bool, std::__1::less<int>, std::__1::allocator<std::__1::pair<int const, bool> > >&, bool, bool)
    7. #4  0x000001a76bd192 in RayFire::Shatter::RFShatter::ModifyObject(int, std::__1::map<int, bool, std::__1::less<int>, std::__1::allocator<std::__1::pair<int const, bool> > >&, bool, bool, RayFire::RFInterval)
    8. #5  0x000001a777a4e6 in Sl_Compute
    9. #6  0x00000194773db6 in  (wrapper managed-to-native) RayFire.DotNet.RFShatter:Sl_Compute (void*&,int*,int,int*,bool) {0x7faaf3e00f60} + 0x96 (0x194773d20 0x194773e43) [0x1757c2960 - Unity Child Domain]
    10. #7  0x0000019477237b in  RayFire.RFFragment:Compute (int,RayFire.DotNet.RFShatter,UnityEngine.Transform,UnityEngine.Mesh[]&,UnityEngine.Vector3[]&,UnityEngine.Mesh,int,System.Collections.Generic.List`1<System.Collections.Generic.Dictionary`2<int, int>>&,UnityEngine.Object,System.Collections.Generic.List`1<int>) {0x7faaf1d09d90} + 0x8b (0x1947722f0 0x194772968) [0x1757c2960 - Unity Child Domain]
    11. #8  0x00000194769703 in  RayFire.RFFragment:SliceMeshes (UnityEngine.Mesh[]&,UnityEngine.Vector3[]&,System.Collections.Generic.List`1<RayFire.RFDictionary>&,RayFire.RayfireRigid,System.Collections.Generic.List`1<UnityEngine.Vector3>) {0x7faaf1d09d68} + 0x4f3 (0x194769210 0x194769a33) [0x1757c2960 - Unity Child Domain]
    12. #9  0x0000019476873b in  RayFire.RFDemolitionMesh:SliceMesh (RayFire.RayfireRigid) {0x7faaf1d05bb8} + 0x10b (0x194768630 0x194768fd9) [0x1757c2960 - Unity Child Domain]
    13. #10 0x000001947685e3 in  RayFire.RayfireRigid:Slice () {0x7faaf1d15328} + 0x33 (0x1947685b0 0x19476860c) [0x1757c2960 - Unity Child Domain]
    14. #11 0x000001750314c0 in mono_jit_runtime_invoke
    15. #12 0x000001751f3f75 in do_runtime_invoke
    16. #13 0x000001751f3ed3 in mono_runtime_invoke
    17. #14 0x000001029f3877 in scripting_method_invoke(ScriptingMethodPtr, ScriptingObjectPtr, ScriptingArguments&, ScriptingExceptionPtr*, bool)
    18. #15 0x000001029ed257 in ScriptingInvocation::Invoke(ScriptingExceptionPtr*, bool)
    19. #16 0x0000010299cabc in Coroutine::InvokeMoveNext(ScriptingExceptionPtr*)
    20. #17 0x0000010299c2bf in Coroutine::Run(bool*)
    21. #18 0x00000101d67093 in DelayedCallManager::Update(int)
    22. #19 0x00000102222ae3 in InitPlayerLoopCallbacks()::UpdateScriptRunDelayedDynamicFrameRateRegistrator::Forward()
    23. #20 0x00000102204dbe in ExecutePlayerLoop(NativePlayerLoopSystem*)
    24. #21 0x00000102204e2a in ExecutePlayerLoop(NativePlayerLoopSystem*)
    25. #22 0x000001022050cc in PlayerLoop()
    26. #23 0x00000103712782 in PlayerLoopController::UpdateScene(bool)
    27. #24 0x00000103704647 in PlayerLoopController::UpdateSceneIfNeeded()
    28. #25 0x00000103701e2a in Application::TickTimer()
    29. #26 0x000001059f1c55 in -[EditorApplication TickTimer]
    30. #27 0x007fff5167b5b9 in __NSFireTimer
    31. #28 0x007fff4f52dbb4 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__
    32. #29 0x007fff4f52d827 in __CFRunLoopDoTimer
    33. #30 0x007fff4f52d32a in __CFRunLoopDoTimers
    34. #31 0x007fff4f52492b in __CFRunLoopRun
    35. #32 0x007fff4f523d23 in CFRunLoopRunSpecific
    36. #33 0x007fff4e83be26 in RunCurrentEventLoopInMode
    37. #34 0x007fff4e83bb96 in ReceiveNextEventCommon
    38. #35 0x007fff4e83b914 in _BlockUntilNextEventMatchingListInModeWithFilter
    39. #36 0x007fff4cb06f5f in _DPSNextEvent
    40. #37 0x007fff4d29cb4c in -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:]
    41. #38 0x007fff4cafbd6d in -[NSApplication run]
    42. #39 0x007fff4cacaf1a in NSApplicationMain
    43. #40 0x00000105a2fb97 in EditorMain(int, char const**)
    44. #41 0x00000105a2fd39 in main
    45. #42 0x007fff76dc4115 in start
    46. Launching bug reporter
    47. [Unity Package Manager (Upm)]
    48. Parent process [7220] was terminated
    49. qt.network.ssl: Error receiving trust for a CA certificate
    50. QObject: Cannot create children for a parent that is in a different thread.
    51. (Parent is QObject(0x7fd4360001e0), parent's thread is QThread(0x7fd42fd006c0), current thread is Thread(0x7fd42fe5e510)
    I didn't do anything fancy - simply copied the RayfireBlade and RayfireRigid components from the blade sample scene.

    Rayfire version: [1.28]

    Any idea?
     
    Last edited: Jan 31, 2021
  44. Mir-vadim

    Mir-vadim

    Joined:
    Apr 18, 2017
    Posts:
    236
    Hi, we fixed recently Slice crash in DLL, but for now only for WIN 64 platforms. If you use plugin on Win64 I can send it to you to try and see if it helps.
     
  45. paulraubic

    paulraubic

    Joined:
    Dec 27, 2013
    Posts:
    3
    Good to know thanks. I use Unity on Mac (and releasing on iOS). Do you happen to know ETA of the fix for the mac?
     
  46. Mir-vadim

    Mir-vadim

    Joined:
    Apr 18, 2017
    Posts:
    236
    Should be ready by the end of this week, sorry, we have some difficulties with Mac setup right now, need some time to setup again and test everything
     
    paulraubic likes this.
  47. RadicalSmiley

    RadicalSmiley

    Joined:
    Apr 7, 2020
    Posts:
    2
    Good day RayFire team!

    Rayfire looks promising and I've been learning lots through video tutorials and trial and error.

    Is there a way to use "atlas"-ed materials with the shattered inner material? I get the entire atlas material applied to the inner shattered pieces. It'd be nice to apply just a rectangle within the atlas to the shattered pieces. The same idea could apply to debris too.
     
  48. Mir-vadim

    Mir-vadim

    Joined:
    Apr 18, 2017
    Posts:
    236
    Hi, sorry, didn't get email notification. I didn't check it with atlased materials. I will check this a bit later and will try to add such support in one of the next builds.
     
  49. RadicalSmiley

    RadicalSmiley

    Joined:
    Apr 7, 2020
    Posts:
    2
    Thanks for your reply, that'd be great to have in the future!
     
  50. terrycheung

    terrycheung

    Joined:
    Oct 9, 2014
    Posts:
    9
    Hi

    I updated to Rayfire 1.29 today and my generated xcode project comes up with some build errors. 2019.4.11/IL2CPP.

    It seems to be an issue with the new 1.29 version of this file libRF_CNative_ios.a (112mb) in the plugins folder
    The Rayfire 1.20 version of this file libRF_CNative_ios.a (240mb) was working before i updated.

    I managed to get past the xcode build errors by using this old version in the generated xcode project instead.