- Home /
Parenting after X time with collision, I dont get it!
Hey,
I need help with parenting an Object to an other after a collision occurred for a specified amount of time generally spoken. I will try to explain it more detailed, but first I want to let you know that I´am trying this for a few days now and I don´t get it working properly.
We have Object A, this is a moving Prefab and we have Object B it has a collider and a script that should wait for collision with Object A, and if the collision is happening for the amount of X time Object B should become the parent of Object A. If A and B are colliding for a lower time than X no parenting should happen.
-Yeah, sounds simple but not for me I really don´t get it working, I have not much programming knowledge and I think I´am missing a basic programming concept. I wrote a lot of diffrent scripts the last days but none of them worked properly, and I know most of you do not respond to Questions that have no scripts attached but I want to understand(!) not guess what is right so please help.
Thanks in advance for the time you invest,
GameGuy
Answer by by0log1c · Apr 09, 2012 at 08:33 PM
This is a simple example that should do what you need. You could use OnTriggerEnter and OnTriggerExit instead of a constantly running checks in OnCollisionStay but this is more informative than actual implementation. This pseudo-code is not performance-friendly, but perhaps it'll give you hints.
public float collisionRequired = 2.5f;
private float collisionCurrent = 0.0f;
function OnCollisionStay(Collider coll)
{
collisionCurrent += Time.deltaTime;
if(collisionCurrent > collisionRequired)
if(coll.transform.parent != transform)
coll.transform.parent = transform;
}
and BIG THAN$$anonymous$$S BY0LOG1C, I turned your pseudo-code into working-code :) , and it does what i was not able to do! Please let me ask one more thing is it possible that code like that is not working with really small amounts of time?
Well, I know physics is calculated by tick at interval. Would an object goes in and out the collider in-between ticks, it would go unnoticed. If you have a rigidbody, setting it to Continuous Dynamic collision detection would help, but that's a known (hardly fixable) issue.
BTW, I hate to request thumbs-up but the norm on UA is typically to mark an answer as accepted once a question is solved.
$$anonymous$$akes sense if the physics step is actually higher than the required collision time. Thanks again for your help!
Your answer
Follow this Question
Related Questions
How to make a sound play and have a delay after so it can't be activated again very fast? 1 Answer
Collision between Character Controller and another object sends other object flying 1 Answer
Make something change color for a set amount of time 3 Answers
No collision between objects connected by fixed joints 0 Answers
Is it a bad practice to change the timescale for the whole game? 1 Answer