Animator and Scripting problems. Help !!

Updated on July 30, 2017 in  [G] Say Hello!
Share on Facebook0Tweet about this on TwitterShare on Google+0Share on Reddit0
0 on July 30, 2017

So I’m making a 2D Platformer by following a youtube tutorial series(https://www.youtube.com/watch?v=SCRupyidkYA), basically, a few videos in we already made the player(Indingo) able to walk by using an animation called walk and inserting that animation into the animator and scripting the player movement and a script called Indingo. Now in the animator, I made a parameter of type float named “speed”, then firstly I have an Idle animation and a Walk animation. Now to transition from Idle to Walk “speed” has to be greater than 0.01 and to transition back to Idle from Walk “speed” has to be less than 0.01. Now my problem is I made two if statements one for A and the other D, the if statement basically says if A OR D pressed twice increase the players(Indingo) movementSpeed and play the run animation, but I couldn’t find a way to increase the players speed(movementSpeed) and play the run animation for the if statement. I don’t what this means but the man behind these tutorials said something about 0.01 being the horizontal value. He’s something about horizontal value in this video-https://www.youtube.com/watch?v=KF0jepqDAtw …. at this time 6:36
——————————————————————————————————————————————————

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Indingo : MonoBehaviour {

int counter;

private Rigidbody2D MyRigidBody;

private Animator MyAnimator;

[SerializeField]
private float movementSpeed;

private bool facingRight;

// Use this for initialization
void Start ()
{
facingRight = true;
MyRigidBody = GetComponent();
MyAnimator = GetComponent();
}

// Update is called once per frame
void FixedUpdate ()
{
if (Input.GetKeyDown (KeyCode.A))
{
print(“A key was pressed”);

counter++;

if (counter == 2)
{

// This is where I want to increase the players speed(movementSpeed) and play the run animation

print(“A was pressed twice”);

counter = 0;//Reset counnter
}

}

if (Input.GetKeyDown(KeyCode.D))
{
print(“D key was pressed”);

counter++;

if (counter == 2)
{

// This is where I want to increase the players speed(movementSpeed) and play the run animation

print(“D was pressed twice”);

counter = 0;//Reset counnter
}

}

float horizontal = Input.GetAxis(“Horizontal”);

HandleMovement(horizontal);

Flip(horizontal);
}

private void HandleMovement(float horizontal)
{
MyRigidBody.velocity = new Vector2(horizontal * movementSpeed, MyRigidBody.velocity.y); // x – 1, y = 0;

MyAnimator.SetFloat(“speed”, Mathf.Abs(horizontal));
}

private void Flip(float horizontal)
{
if (horizontal > 0 && !facingRight || horizontal < 0 && facingRight)
{
facingRight = !facingRight;

Vector3 thescale = transform.localScale;

thescale.x *= -1;

transform.localScale = thescale;
}
}
}

 

——————————————————————————————————————————————————

  • Liked by
Reply