Jump Animation Script and colliders not working properly
In Unity2d I scripted up a simple jump script with the help of a tutorial. However, in the tutorial it works fine vs. in my code where it doesn't return to the normal jump animation. I've tried moving the startpoint and endpoint collision detectors up and down to see if they might not be being activated but it's to no avail. Also, my jump animation doesn't activate unless I jump from a certain height. Otherwise I stay in the idle pose. I've ran over the code and compared it to that of the tutorial and found nothing. Does anyone have any ideas?
Below I've attached the specific code and data I've used to construct my jump script:
public bool Jump;
public Transform StartPoint;
public Transform EndPoint;
public LayerMask GroundLayer;
if(Input.GetKeyDown(KeyCode.Space) & _canjump == true)
{
_anim.SetBool("Jump", true);
_myRigidbody.velocity = new Vector2(_myRigidbody.velocity.x, 10);
_canjump = false;
}
RaycastHit2D hitInfo = Physics2D.Linecast(StartPoint.position, EndPoint.position, GroundLayer.value);
Debug.DrawLine(StartPoint.position, EndPoint.position);
if (hitInfo.collider != null)
{
Debug.Log("HIT");
_canjump = true;
_anim.SetBool("Jump", false);
}
Answer by off99555 · Aug 18, 2016 at 01:53 AM
Maybe you need to write these code inside a function like Update() ?
It is inside the update function. I just gave you the block of code involving jumping. There's a lot of other code in the update() and I didn't want to have to copy it all through. It is in the update() function though.
First, you have to believe that you are wrong. After you believe that, you will try to seek the error. From your code, there is nothing wrong but there might be something wrong that you didn't post and you ASSU$$anonymous$$E that they are right. The easiest way to detect the error is to use Debug.Log before/after the statement you think it is not correct. The thing that doesn't work. For example, Log something after SetBool("Jump"). It can be anything just to ensure that line gets run.
Now there are 2 cases, either it doesn't run. (That's a good case so you know exactly where the error is). Or it runs. If it runs then you then need to ensure that your Animator controller is correct. Open Animator window and play the game, watch the state transition of your animation clips.
Your answer
Follow this Question
Related Questions
First person shooter : Leaning! 2 Answers
How to increase the time between updates? 1 Answer
Accessing script from another object 1 Answer
Performance peaks in ScriptRunBehaviourUpdate 1 Answer
Issues using two scripts. 1 Answer