Я установил новую игру сверху вниз в Unity (v. 2019.3.8f1). Я создал персонажа со спрайтом и сделал для него анимацию, где он немного двигается и вращается. Я также сделал пустой игровой объект в качестве родительского узла. Я написал для него простое движение и сделал функцию, которая устанавливает логическое значение для аниматора, и анимация запускается. Анимация работает отлично и движение тоже. Но когда я играю во время движения, игрок становится невидимым, и я не знаю, как это исправить. У кого-нибудь есть идеи, почему он это делает или как я могу это исправить?
PlayerParentMovement:
using System.Collections.Generic;
using UnityEngine;
public class PlayerMovement : MonoBehaviour {
public float moveSpeed = 5f;
Vector2 movement;
public Rigidbody2D rb;
private GameObject player;
private bool input;
private void Start() {
player = GameObject.FindGameObjectWithTag("Player");
}
void Update() {
//Input
movement.x = Input.GetAxisRaw("Horizontal");
movement.y = Input.GetAxisRaw("Vertical");
if (movement.x != 0 || movement.y != 0) {
input = true;
} else {
input = false;
}
}
private void FixedUpdate() {
//Movement
player.GetComponent<PlayerHandler>().changeState(input);
rb.MovePosition(rb.position + movement * moveSpeed);
}
}
PlayerHandler:
using System.Collections.Generic;
using UnityEngine;
public class PlayerHandler : MonoBehaviour {
private Animator animator;
// Start is called before the first frame update
void Start() {
animator = GetComponent<Animator>();
}
// Update is called once per frame
void Update() {
}
public void changeState(bool running) {
if(running) {
animator.SetBool("running", true);
}else {
animator.SetBool("running", false);
}
}
}