15-05-2021, 12:11 PM
(This post was last modified: 15-05-2021, 12:14 PM by josemendez.)
(15-05-2021, 01:57 AM)Hatchling Wrote: I'd like to ensure that, in my project, everything is able to collide with everything else. However, each time I instantiate a rope, it has the same phase as the last rope I instantiated.
I'd like to disable this feature, as going in and editing each rope I instantiate to have a unique phase seems like it'd be a real pain.
You can write a simple script that bumps the phase value for each instance. I can share some code if you wish.
(15-05-2021, 01:57 AM)Hatchling Wrote: Is there a way to do this? Or would I need to modify source code I don't have access to (e.g. in the DLL)?
The full source code for the Burst backend is included and you can modify it to your liking, it is recommended to use it instead of the fallback backend (Oni) which is a shared library indeed. Burst has broader platform compatibility and slightly better performance in some cases.
(15-05-2021, 01:57 AM)Hatchling Wrote: EDIT: It appears that using self-collision doesn't just allow collision with the self, but also allows collision between *everything else* of the same phase, *except* rigidbodies, which mostly solves the problem: Just make sure everything has "Self Collision" enabled and that every particle actor uses phase 1, and every rigidbody uses phase 0.
This won't work. Self-collisions will ignore collisions against particles in the same rest position, so particle #3 in different actors instantiated from the same blueprint won't collide with each other. You might get lucky in some cases, but this is not a robust approach.
(15-05-2021, 01:57 AM)Hatchling Wrote: The description is a bit misleading. (Also, as a side note, the term "phase" doesn't evoke the concept of collision. Usually phase is used to describe something's progress through a cycle, like rotation. Perhaps "layer" would be a better term.)
"Phase" as in state of matter phase. This is a standard term in physics. Other particle-based engines such as Flex use the same term, so we didn't want to reinvent the wheel. This also avoids confusion since Unity already uses the term "layer" with a different meaning.