Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.04.2023, 01:59   #1
VanLin
Новичок
Джуниор
 
Регистрация: 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);
}
}
VanLin вне форума Ответить с цитированием
Старый 14.04.2023, 10:40   #2
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,792
По умолчанию

либо графика тяжёлая - задний фон или сам персонаж.либо много условий или расчётов - долго проверяет цифры...
я б для персонажа для начала выбрал типа кубик или шррик - чтоб проще рисовалось...
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать прыжок 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