Проблема с animator

Общие вопросы о Unity3D

Проблема с animator

Сообщение BaneJil 16 янв 2022, 20:49

В общем когда я сделал анимации персонаж стал зависать в воздухе. Я попробовал отключить animator и он нормально упал
Синтаксис:
Используется csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Advertisements;


public class Player : MonoBehaviour
{
    [SerializeField] private string gameID;

    [SerializeField] private bool testMode;
    private bool facingRight;

    private float speed;
    [SerializeField] private float normalSpeed;
    [SerializeField] private float jumpForce;

    private bool isGrounded;

    private Rigidbody2D rb;
    private Animator anim;

    private void Start()
    {
        facingRight = true;
        speed = 0;

        rb = GetComponent<Rigidbody2D>();
        anim = GetComponent<Animator>();
        if (Advertisement.isSupported)
        {
            Advertisement.Initialize(gameID, testMode);
        }
        StartCoroutine(ShowBanner());
    }
    IEnumerator ShowBanner()
    {
        while (!Advertisement.IsReady("Banner_Android"))
        {
            yield return new WaitForSeconds(1);
        }
        Advertisement.Banner.SetPosition(BannerPosition.TOP_CENTER);
        Advertisement.Banner.Show("Banner_Android");
    }
    private void Update()
    {
        Move();
        if (facingRight == true && speed < 0)
        {
            Flip();
        } else if (facingRight == false && speed > 0)
        {
            Flip();
        }
        if (!isGrounded)
        {
            anim.SetBool("isJumping", true);
        }
        else
        {
            anim.SetBool("isJumping", false);
        }
    }
    public void OnLeftButton()
    {
        if (speed >= 0)
        {
            speed = -normalSpeed;
        }
    }
    public void OnRightButton()
    {
        if (speed <= 0)
        {
            speed = normalSpeed;
        }
    }
    public void ButtonUp()
    {
        speed = 0;
    }
    private void Move()
    {
        rb.velocity = new Vector2(speed, rb.velocity.y);
        if (speed > 0)
        {
            anim.SetBool("isRunning", true);
        }
        else if (speed < 0)
        {
            anim.SetBool("isRunning", true);
        }
        else
        {
            anim.SetBool("isRunning", false);
        }
    }
    public void Jump()
    {
        if (isGrounded)
        {
            rb.AddForce(new Vector2(0, jumpForce));
            anim.SetTrigger("takeOff");
        }
    }
    private void Flip()
    {
        facingRight = !facingRight;
        Vector2 Scaler = transform.localScale;
        Scaler.x *= -1;
        transform.localScale = Scaler;
    }
    private void OnCollisionEnter2D()
    {
        isGrounded = true;
    }
    private void OnCollisionExit2D()
    {
        isGrounded = false;
    }
}
BaneJil
UNец
 
Сообщения: 2
Зарегистрирован: 16 янв 2022, 20:42

Re: Проблема с animator

Сообщение 1max1 16 янв 2022, 20:54

Видимо привязал анимацию к глобальным координатам, вместо локальных.
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Проблема с animator

Сообщение BaneJil 16 янв 2022, 21:25

1max1 писал(а):Видимо привязал анимацию к глобальным координатам, вместо локальных.

Спасибо, исправил.
BaneJil
UNец
 
Сообщения: 2
Зарегистрирован: 16 янв 2022, 20:42


Вернуться в Общие вопросы

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot], Yandex [Bot] и гости: 16