Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Создания 2д игры unity с движениям по вертикале

Perpendicular Мастер (1703), на голосовании 7 месяцев назад
Только начинаю свою путь в unity и хочу сделать игру, где персонаж может деваться по полу не только вперёд и назад, а вверх и вниз. Это не вид с верху, а вид с боку как в игре street of rage. Половина экрана - это стена по которой нельзя ходить как по полу, а другая половина эта пол. Не могу найти примеры реализации подобных проектов в интернете. Ещё не понимаю, как реализовать при этом механику прыжка. Персонаж должен будет прыгать не вверх по полу а над полом. Подскажите пожалуйста, как это правильно реализовать. Street of rage
Голосование за лучший ответ
Пророк Памперс (ПП) Профи (860) 8 месяцев назад
Шаг 1: Создание игрового объекта и настройка сцены
  • Создайте 2D проект в Unity.
  • Создайте игровой объект (например, спрайт персонажа).
  • Расставьте стены и пол на сцене.
Шаг 2: Добавление компонента CharacterController2D

Unity имеет встроенный компонент CharacterController2D для управления движением персонажа. Добавьте его к вашему игровому объекту:
  • Перейдите в Window -> Package Manager.
  • Нажмите + и добавьте пакет "2D Sprite".
  • Создайте пустой объект и добавьте к нему компонент "Rigidbody2D".
  • К пустому объекту добавьте компонент "CharacterController2D" из Package Manager.
Шаг 3: Настройка CharacterController2D
  • Откройте настройки "CharacterController2D".
  • Установите поля "Ground Mask" и "Wall Mask", чтобы указать слои для пола и стен соответственно.
  • Включите опцию "Allow Flip" для возможности разворота персонажа.
Шаг 4: Скрипт управления движением
Создайте новый скрипт и прикрепите его к вашему персонажу. Пример кода для управления движением вверх и вниз:

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

public class PlayerMovement : MonoBehaviour
{
public float moveSpeed = 5f;
public float jumpForce = 10f;

private CharacterController2D controller;
private float horizontalMove = 0f;
private bool isJumping = false;

void Start()
{
controller = GetComponent();
}

void Update()
{
horizontalMove = Input.GetAxisRaw("Horizontal") * moveSpeed;

if (Input.GetButtonDown("Jump"))
{
isJumping = true;
}
}

void FixedUpdate()
{
controller.Move(horizontalMove * Time.fixedDeltaTime, false, isJumping);
isJumping = false;
}
}
Шаг 5: Настройка входов
  • Перейдите в Edit -> Project Settings -> Input Manager.
  • Создайте новую ось "Horizontal" с кнопками "a" и "d" для управления горизонтальным движением.
  • Создайте новую кнопку "Jump" (пробел) для прыжка.
Похожие вопросы