|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
09.04.2023, 01:59 | #1 |
Новичок
Джуниор
Регистрация: 09.04.2023
Сообщений: 1
|
Как сделать реакцию на прыжок быстрее
Здравствуйте, решил создать свою игру для проекта, не могу понять как сделать так чтобы персонаж реагировал быстрее на нажатие кнопки пробел и прыгал, вот код:
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Person : MonoBehaviour { public float speed; // Скорость персонажа private float moveInput; // Направление движения персонажа private Rigidbody2D rb; // Rigidbody2D компонент персонажа private bool facingRight = true; // Переменная для хранения направления персонажа private Animator animator; private string currentAnimation; public float jumpForce = 15f; public Transform groundCheck; public LayerMask groundLayer; private bool isGrounded; void Start() { rb = GetComponent<Rigidbody2D>(); animator = GetComponent<Animator>(); } void ChangeAnimation(string animation) { if (currentAnimation == animation) return; animator.Play(animation); currentAnimation = animation; } void FixedUpdate() { // Получаем ввод от пользователя moveInput = Input.GetAxis("Horizontal"); // Применяем силу к Rigidbody2D компоненту персонажа rb.velocity = new Vector2(moveInput * speed, rb.velocity.y); if (moveInput != 0) ChangeAnimation("Run Animation"); else { ChangeAnimation("Animate Person"); } // Проверяем направление персонажа if (facingRight == false && moveInput > 0) { Flip(); } else if (facingRight == true && moveInput < 0) { Flip(); } { // проверяем, находится ли персонаж на земле isGrounded = Physics2D.OverlapCircle(groundCheck .position, 0.2f, groundLayer); // прыгаем, если нажата клавиша "пробел" и персонаж находится на земле if (Input.GetKeyDown(KeyCode.Space) && isGrounded) { rb.velocity = new Vector2(rb.velocity.x, jumpForce); } } } // Метод для разворота персонажа void Flip() { facingRight = !facingRight; transform.Rotate(0f, 180f, 0f); } } |
14.04.2023, 10:40 | #2 |
Участник клуба
Регистрация: 03.06.2009
Сообщений: 1,834
|
либо графика тяжёлая - задний фон или сам персонаж.либо много условий или расчётов - долго проверяет цифры...
я б для персонажа для начала выбрал типа кубик или шррик - чтоб проще рисовалось...
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как сделать прыжок | MeynSpain | Общие вопросы Delphi | 10 | 13.04.2014 12:04 |
Как сделать брут быстрее? Twebbrowser | Askar_g | Работа с сетью в Delphi | 7 | 18.11.2013 20:47 |
как сделать что бы работала быстрее | luffi | Помощь студентам | 3 | 10.04.2012 23:53 |
Модернизировать код, сделать его быстрее | Rusl92 | Общие вопросы Delphi | 5 | 03.11.2008 19:23 |