Мой персонаж не двигается после включения взаимодействия с удержанием.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Мой персонаж не двигается после включения взаимодействия с удержанием.

Сообщение Anonymous »

У меня проблема с InputActions
У меня есть Actions MoveX с привязкой 1D оси с удержанием взаимодействия
В моей игре на сцене 4 персонажа
но активен только один, и вы можно переключаться между ними
Итак, проблема в том, что когда я отключаю своего персонажа, а затем включаю его, пока моя кнопка D или A все еще активна, мой персонаж останавливается, и для перемещения мне нужно снова нажать эту кнопку
И у меня есть понятия не имею, как это исправить (

Код: Выделить всё

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

public class CharacterController : MonoBehaviour
{
private StateManager stateManager;
[SerializeField] private string name;

private CharacterMovement movement;
private CharacterJump jump;

public Animator anim;
public Rigidbody2D rb;
private SpriteRenderer spriteRenderer;

private InputActions controls;

public float horizontal;

public bool flipOnMove;

public bool isGround;

void Awake()
{
controls = new InputActions();

controls.Main.MoveX.performed += ctx =>
{
horizontal = ctx.ReadValue();
};

controls.Main.MoveX.canceled += ctx =>
{
horizontal = 0;
};

controls.Main.Jump.started += ctx => JumpStart();
controls.Main.Jump.canceled += ctx => JumpEnd();

stateManager = FindObjectOfType();

anim = GetComponent();
rb = GetComponent();
spriteRenderer = GetComponent();

movement = GetComponent();
jump = GetComponent();

}

void Update()
{
if(flipOnMove)
{
switch(horizontal)
{
case -1:
spriteRenderer.flipX = true;
break;
case 1:
spriteRenderer.flipX = false;
break;
}
}
}

void FixedUpdate()
{
Move(horizontal);
}

void OnEnable()
{
controls.Enable();

stateManager.currentGameObject = gameObject;
stateManager.currentStatesName = name;

if(stateManager.lastGameObjectTs != null) // зберігання позиції
{
gameObject.transform.position = stateManager.lastGameObjectTs.position;
if(name == "Human") // Якщо людина то спавнити вище
gameObject.transform.position += new Vector3(0f,0.4f,0f);
gameObject.transform.rotation = stateManager.lastGameObjectTs.rotation;
}

if(stateManager.lastGameObjectRb != null) // Зберігання фізики
{
Rigidbody2D rb = gameObject.GetComponent();
rb.velocity = stateManager.lastGameObjectRb;
}

}

void OnDisable()
{
controls.Disable();
}

public void Move(float direction)
{
if(movement != null)
{
movement.Move(direction);
}
}

public void JumpStart()
{
if(jump != null)
{
jump.Jump();
}
}

public void JumpEnd()
{
if(jump !=  null)
{
jump.StopJumpAnim();
}
}
}

Я пытался проверить нажатие кнопки в методе Update, но он все равно не работает.
Также, если я удалю, control.Disable() в OnDisable () у меня все будет нормально
но в консоли будет много ошибок, поэтому я думаю, что это неправильный путь

Подробнее здесь: https://stackoverflow.com/questions/790 ... nteraction
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Мой персонаж не двигается после включения взаимодействия с удержанием.
    Anonymous » » в форуме C#
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Персонаж не двигается в Unity
    Anonymous » » в форуме C#
    0 Ответы
    42 Просмотры
    Последнее сообщение Anonymous
  • Как справиться с автоматическим аварийным переключением и удержанием IP в случае сбоя зоны в Google Cloud?
    Anonymous » » в форуме MySql
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • JLabel не двигается
    Anonymous » » в форуме JAVA
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Игрок LibGDX не двигается
    Anonymous » » в форуме JAVA
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»