Od dłuższego czasu nie wiem jak to naprawić i potrzebuje porady. Dodałem transform.Rotate do ruchu w prawo albo w lewo by zależnie czy się kliknie przycisk w prawo lub lewo w tą stronę ma postać się obrócić i w pewnym sensie to działa tylko gdy dłużej się przytrzyna przicisk to postać kręci się w dwie strony na sekunde jak by ten obrót się resetował. Poniżej przesyłam cały kod :
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Moving : MonoBehaviour
{
private Rigidbody2D rb;
private bool moveLeft;
private bool moveRight;
private float horizontalMove;
public float speed = 6;
public float jumpSpeed = 5;
bool isGrounded;
private Animator anim;
// Start is called before the first frame update
private void Start()
{
rb = GetComponent<Rigidbody2D>();
anim = GetComponent<Animator>();
moveLeft = false;
moveRight = false;
}
public void PointerDownLeft()
{
moveLeft = true;
}
public void PointerUpLeft()
{
moveLeft = false;
}
public void PointerDownRight()
{
moveRight = true;
}
public void PointerUpRight()
{
moveRight = false;
}
// Update is called once per frame
void Update()
{
MovePlayer();
}
private void MovePlayer()
{
if (moveLeft)
{
horizontalMove = -speed;
transform.Rotate(0, -180, 0);
}
else if (moveRight)
{
horizontalMove = speed;
transform.Rotate(0, 180, 0);
}
else
{
horizontalMove = 0;
}
}
private void OnCollisionEnter2D(Collision2D other)
{
if (other.gameObject.tag == "Ground")
{
isGrounded = true;
}
}
public void jumpButton()
{
if (isGrounded)
{
isGrounded = false;
rb.velocity = Vector2.up * jumpSpeed;
}
}
private void FixedUpdate()
{
rb.velocity = new Vector2(horizontalMove, rb.velocity.y);
}
}