Question by
joshuadecano · May 18, 2017 at 11:09 AM ·
2d game2d animation
2D Isometric Game Questions
I'm creating a 2d isometric game and I need help changing the way my character moves. I have a few questions:
I would like for the character to have no acceleration and deceleration when moving (start moving at max speed right away and stop moving right away)
How can I make my player face left / right / up when idle? It's set to facing down when Idle so when i move up and stop moving, it faces down when idle and i don't really like that.
Also I'd like to know how to do this with Attack animations as well
Here is my current script:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour {
public int Speed = 1;
[Tooltip("How much damage we deliver on a hit to others")]
public int HitStrength = 10;
private Animator _animator;
private Rigidbody2D _rigidBody;
private SpriteRenderer _spriteRenderer;
private GameController _gameController;
private float _horizontal;
private float _vertical;
void Start()
{
_animator = GetComponent<Animator>();
_rigidBody = GetComponent<Rigidbody2D>();
_spriteRenderer = GetComponent<SpriteRenderer>();
_gameController = GameObject.FindGameObjectWithTag("GameController").GetComponent<GameController>();
}
void Update()
{
_horizontal = Input.GetAxis("Horizontal");
_vertical = Input.GetAxis("Vertical");
_animator.SetBool("WalkDown", _vertical < 0);
_animator.SetBool("WalkUp", _vertical > 0);
_animator.SetBool("WalkRight", _horizontal > 0);
_animator.SetBool("WalkLeft", _horizontal < 0);
}
void FixedUpdate()
{
_rigidBody.velocity = new Vector2(_horizontal * Speed, _vertical * Speed);
}
}
Comment
Your answer
Follow this Question
Related Questions
Increase attack speed and animations 1 Answer
How do I stop an animation from looping? 1 Answer
2D Dynamic Lights and Shadows 0 Answers