Мой игрок все еще находится в режиме скалолазания, когда игрок бежит с лестницыC#

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

Сообщение Anonymous »

У меня есть лестница в моей игре, то, что происходит, так это то, что анимация игрока поднимается, как только игрок коснулся лестницы, а клавиша UP нажимается, но когда я двигаю горизонтальным с левой и правой ключом, игрок движется в лестнице, но я вижу задержку, когда игрок все еще поднимается один раз, а затем выходит на пробежку или в Idle Animation. Попытки, когда игрок поднимается на секунду или два, когда игрок находится в стороне от его лестницы.

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

using UnityEngine;

public class PlayerMovement : MonoBehaviour
{
public CharacterController2D controller;
float horizontalMove = 0f;
float verticalMove = 0f;
public float runSpeed = 40f;
bool jump = false;
public Animator animator;
private bool isLadder = false;
public Rigidbody2D rigidBody2D;
Collider2D tempCollision;
// Start is called once before the first execution of Update after the MonoBehaviour is created
void Start()
{

}

// Update is called once per frame
void Update()
{
horizontalMove = Input.GetAxisRaw("Horizontal") * runSpeed;
verticalMove = Input.GetAxisRaw("Vertical") * runSpeed;

animator.SetFloat("Speed", Mathf.Abs(horizontalMove));

//Debug.Log("isLadder:" + isLadder);
if(Input.GetButtonDown("Left") || Input.GetButtonDown("Right"))
{
//Debug.Log("Left or Right");
animator.SetBool("Climb", false);
}
if (Input.GetButtonDown("Up") && isLadder)
{
//Debug.Log("Up");
animator.SetBool("Climb", true);
}
if (Input.GetButtonDown("Jump") && !isLadder)
{
jump = true;
}
}

void OnTriggerEnter2D(Collider2D collision)
{
//Debug.Log("Object that collided with me: " + collision.gameObject.tag);
if (collision.gameObject.tag == "Ladder" || collision.gameObject.tag == "Ladder_Bottom")
{
tempCollision = collision;
//Debug.Log(collision.gameObject.name);
isLadder = true;
}
}
void OnTriggerExit2D(Collider2D collision)
{
if (collision.gameObject.tag == "Ladder" || collision.gameObject.tag == "Ladder_Bottom")
{
tempCollision = null;
//Debug.Log(collision.gameObject.name);
animator.SetBool("Climb", false);
isLadder = false;
}
}
public void OnLanding()
{
animator.SetBool("IsJumping", false);
}
private void FixedUpdate()
{
controller.Move(horizontalMove * Time.fixedDeltaTime, false, jump);
jump = false;
//isLadder = false;
}
}
< /code>
Как видите, я настраивает переменную аниматора на false для подъема, как только пользователь попадет в левую или правую клавишу: < /p>
if(Input.GetButtonDown("Left") ||
Input.GetButtonDown("Right"))
{
//Debug.Log("Left or Right");
animator.SetBool("Climb", false);
}


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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Проблема со стеной для скалолазания игрока
    Anonymous » » в форуме C#
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • Функция лестницы Python
    Anonymous » » в форуме Python
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Игра «Змеи и лестницы» на Python [закрыто]
    Anonymous » » в форуме Python
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Что Шебанг использовать для сценариев Python бежит под Pyenv Virtualenv
    Anonymous » » в форуме Python
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Sonarqube остановился и не бежит
    Anonymous » » в форуме JAVA
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous

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