- Home /
Question by
mirkojpn · Apr 12, 2018 at 05:24 AM ·
inputanimatoranimator controller
use animator and input on screen button
hello! i have this player controller script that let me move on the horizontal axis and jump, what i'm trying to do is to set the animation clip that i already set on the Animation controller, i wrote something, but doesn't work. also when the player is in idle is looking at left, but i need that look at right.
the last things is the input on screen, i have created three buttons on screen to move it left and right and one for jump, how i should do that?
thank's in advice.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerPlatformerController : PhysicsObject {
public float maxSpeed = 7;
public float jumpTakeOffSpeed = 7;
private SpriteRenderer spriteRenderer;
private Animator animator;
int jumpHash = Animator.StringToHash("jump");
// Use this for initialization
void Awake ()
{
spriteRenderer = GetComponent<SpriteRenderer> ();
animator = GetComponent<Animator> ();
}
protected override void ComputeVelocity()
{
Vector2 move = Vector2.zero;
move.x = Input.GetAxis ("Horizontal");
if (Input.GetButtonDown ("Jump") && grounded) {
velocity.y = jumpTakeOffSpeed;
anim.SetTrigger(jumpHash);
} else if (Input.GetButtonUp ("Jump"))
{
if (velocity.y > 0) {
velocity.y = velocity.y * 1f;
}
}
bool flipSprite = (spriteRenderer.flipX ? (move.x > 0.01f) : (move.x < 0.01f));
if (flipSprite)
{
spriteRenderer.flipX = !spriteRenderer.flipX;
}
animator.SetBool ("grounded", grounded);
animator.SetFloat ("velocityX", Mathf.Abs (velocity.x) / maxSpeed);
targetVelocity = move * maxSpeed;
}
}
Comment
Your answer
Follow this Question
Related Questions
How to turn this bool into false? 1 Answer
Animate a button. 0 Answers
index < m_boolCount 2 Answers
How do I switch a character's animator controller to an animator override controller via script? 0 Answers
Button gets stuck in Pressed state 1 Answer