I've encountered a bug in my project, and was able to encounter it again on a new clean projet. I'm using Unity 2019 LTS and Obi Rope 5.6.2
1. I've a prefab, containing two objects dynamically linked by a rope. The solver is inside the prefab (with ObiFixedUpdater)
2. I put 3 instances of this prefab in a simple scene
3. Then, if I delete A, then B, then C, everything is fine...
BUT ! If I delete C first, there is a big bug, and ropes from A go crazy and jump (or the spheres/cubes fly away) ! The attachment is almost broken (there is a big gap between the rope and the sphere)
Could you help me/resolve this bug ?
I can send a zip package is necessary,
Hello, we urchase Obi fluid recently. And after setup it in our project we had seen a huge drop in our performance, even without any fluid or softbody in our scene.
From our profiling we had guess the probleme is the fuild rendering feature added to URP.
It use two times the function FindObjectsOfType wich is very slow (probably because our scene is huge > 20000 objects.)
The result of one of the two calls isn't even used and is just a waste of cpu. Any way to improve that ? Usage of frustum culling maybe ?
First, thanks for the great asset! After building my own rope using joints, I am impressed with the behavior and performance of obi rope.
I'm currently having an issue where the rope behaves as expected in the editor but on play mode it isn't stable and flies everywhere.
Set up:
Rope with 2 attachments, one static, one dynamic.
Attachments are outside of colliders, and both control points are the same phase as the nearest collider
Using Burst
Obi Solver has interpolate selected
When I make a build, the rope will fly everywhere, despite the attachments behaving as expected. If I turn off interpolation, the rope looks fine, despite a ton of visual jitter (the static attachment is on a moving rigidbody).
I would really prefer to use interpolate to avoid this jitter. Any ideas?
Hello, when I use SetMass to change mass during game, the softbody get launched in the air so fast it get in NaN coordinates.
My use case is a blob eating, I want to increment the mass of the blob when it eats.
I use SetMass once on instantiation to set initial mass, wich work fine, but once I detect a collision and change the player's blob mass, it get launched in the air.
If I increment mass by some very low value like 0.00001f the blow slowly accelerate upward.
I have a rope and attached rigidbodies to this rope's both ends.
I wanted to draw on the object on the left with pulling the object attached to the end of the rope(object on the right) very fast.
When I pull it slowly, the behaviour is as expected. But when I increase the pull speed it does not behave very well because of the stretching(I guess). I'm setting the mass of the object on the left very low(like 0.01) when pulling, but it couldn't solve the problem.
P.s: I pull the object with using it's rigidbody, not with it's transform.
I attached two screenshots to describe my problem.
What settings should I apply to pull it correctly and very fast.
Hello, is there a way to get the speed of a single particle?
I know the ObiEmitter has an attribute with the remaining life of each of its particles. But how can I get more information about each particle. Right now I only need to know their speed, but the more the merrier.
I just found this plugin and it looks quite awesome, I get the Obi Softbody and start trying it with a simple 3D capsule according to the QuickstartGuide_softbody.pdf which just in the package
When I tried to assign a capsule mesh to the Mesh in Skinned Mesh Renderer of the Obi Softbody, an error popped up:
I still skinned it and tried to run the scene, a un-rendered capsule mesh drop from the position of the 3D capsule which I created to the bottom:
My unity version is 2020.2.1f1c1 with mac system, could you have a look at this issue? I really need this plugin Thank you so much
Hi, I have modified the GrapplingHook.cs script to work in 3D for my game.
I have encountered a bug that I am unsure how to fix. Here is a GIF of what currently happens in my game: https://gyazo.com/1a32cb32cf6e7bd19ddc004e1ec7c6b5
I am trying to make a grappling gun that shoots out of the end of the gun and then attaches to the clicked object which you can then shorten the rope to move towards.
I am also encountering the Player's Rigidbody moving since it's being influenced by the rope. Is there any way to only move the player once the rope becomes strained/has no slack remaining? I am trying to only "pull" the player towards the rope once it is ready to move.
In order to combat stretchy ropes and gaining some performance, I'm trying to freeze a rope 2 seconds after the player lets go of it and unfreeze it when the player picks it up again. I'm came across this response which helps a lot, I now instantiate the mesh and use that while the rope is frozen. However, I'm still running into an issue.
The rope is attached to an object using Particle Attachments. If the object it's attached to moves while the rope is frozen, the cable stays on it's frozen position.
How can I make sure the rope follows the object, even when it's frozen?
This time I was wondering how to find the collider involved in a collision. I know the solver has events which include a list of all the contacts made in the last step. I was checking the contact documentation and it seems to have an int attribute called "other", which contains the index of whatever it is colliding in that contact.
My question is, how do I convert that index to the actual collider?
I supose there should be something that has a list of all the colliders, but I don't seem to find it. The OniColliderWorld that gets created when you start using this system was a good guess but I didn't saw any property that has them. It looks hard to do as colliders don't need to be inside a solver so it might be harder to keep track of every collider.