- Home /
SpringJoint2D behaving oddly when the gameObject that it is connected to collides with another gameObject.
I have a simple script to test out the SpringJoint2D. If the gameObject is touching another, it won't adjust the distance when using the script that I am using, but the debug.log still shows up fine.
Also, it does show the distance changing in the inspector and scene view, but the gameObject will not move. It acts like it is stuck unless I disable then enable the spring joint and use my script to change the distance within about half a second.
If I manually change the distance by using the inspector, it will cause the gameObject to react like it should. When the gameObject is not connected to another, the script works fine and it will move when I change the distance.
The two objects had 2D Box colliders. I tried changed the main gameObject to a circle collider and it did help decrease the frequency of it getting stuck, but if I just wait for it to stop moving, it will be stuck again.
What might be causing this?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class changeJointDistance : MonoBehaviour {
public SpringJoint2D springJoint;
void Start () { }
void Update () {
var d = Input.GetAxis("Mouse ScrollWheel");
if (d > 0f)
{
Debug.Log("Scrolled UP");
// scroll up
springJoint.distance -= .25f;
}
else if (d < 0f)
{
Debug.Log("Scrolled Down");
// scroll down
springJoint.distance += .25f;
}
}
}
It does not matter if the springjoint is shortened to .05 which is as small as it will go or if it is longer. It will still get stuck.
Something that I just noticed is that the box collider is brighter when it is not stuck then when it is stuck it becomes darker in the scene view. Does this mean that unity is disabling something to preserve resources?
Answer by Ownedbycow · Mar 02, 2018 at 04:54 PM
I found the issue. The problem is that the rigidbody 2d is going to sleep after being idle for about half a second. I set it to always awake and it fixed the issue. If it is set to always awake, will this greatly affect the games performance?
Your answer
![](https://koobas.hobune.stream/wayback/20220612153729im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
2D Animation does not start 1 Answer
Scaling colliders up and down over time 1 Answer
Moving colliders that are part of a composite collider 1 Answer
Polygon Collider 2D: prevent automatic generation 2 Answers
Collider lets object through 0 Answers