Задать вопрос
UMFUCHI
@UMFUCHI
НедоПайтонист

Когда я нажимаю на кнопку идти влево у меня пропадают текстуры?

Баг при ходьбе, когда я нажимаю на кнопку идти влево у меня пропадают текстуры всех спрайтов, что делать? UNITY 2D
вот код:

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

public class cucumbercontrol : MonoBehaviour
{
    public float speed;
    public float normalSpeed;
    public float jumpForce;
    private float moveInput;

    private Rigidbody2D rb;

    private bool facingRight = true;

    private bool isGrounded;
    public Transform feetPos;
    public float checkRadius;
    public LayerMask whatIsGround;
    
    private void Start()
    {
        speed = 0f;
        rb = GetComponent<Rigidbody2D>();
    }


    private void FixedUpdate()
    {
        rb.velocity = new Vector2(speed, rb.velocity.y);
        if (facingRight == false && moveInput > 0)
        {
            Flip();
        }
        else if (facingRight == true && moveInput < 0)
        {
            Flip();
        }
    }
    private void Update()
    {

        isGrounded = Physics2D.OverlapCircle(feetPos.position, checkRadius, whatIsGround);
        if(isGrounded == true && Input.GetKeyDown(KeyCode.Space))
        {
            rb.velocity = Vector2.up * jumpForce;
        }
    }

    public void OnJumpButtonDown()
    {
        if (isGrounded == true)
        {
            rb.velocity = Vector2.up * jumpForce;
        }
    }

    public void OnLeftButtonDown()
    {
        if (speed >= 0f)
        {
            speed = -normalSpeed;
            transform.eulerAngles = new Vector3(0, 180, 0);
        }
    }

    public void OnRightButtonDown()
    {
        if (speed <= 0f)
        {
            speed = normalSpeed;
            transform.eulerAngles = new Vector3(0, 360, 0);
        }
    }
    void Flip()
    {
        facingRight = !facingRight;
        Vector3 Scaler = transform.localScale;
        Scaler.x *= -1;
        transform.localScale = Scaler;
    }
    public void OnButtonUp()
    {
        speed = 0f;
    }
}
  • Вопрос задан
  • 226 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
@stictt
просто рак
Есть вероятность что вы уходите за текстуры. Так как вы используете 2д физику, но при нажатии клавиши, вы используете Vector3 для трехмерной графики.
Ответ написан
Комментировать
zZaKko
@zZaKko
Люблю стратегии и Unity.
Используйте не new Vector2 , а Vector3. Ибо если использовать Vector2, то z будет сам меняться, а при Vector3 вы можете указать чтобы z остался тот же.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы