Единство, определяющее землю посредством радиовещания - PullRequest
0 голосов
/ 05 февраля 2020

Добрый вечер!

Я пытаюсь сделать простой двухмерный платформер в единстве без использования твердых тел, поэтому я использую raycast, чтобы определить, где находится земля. Я написал этот код:

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

public class comtroller : MonoBehaviour
{

    private float velocity_y;
    private float velocity_x;

    private float speed_y = 1;
    private float speed_x = 10;

    private float localMinimum_y;



    //mask of the platform
    public LayerMask mask;

    void Update()
    {

        // raycast to sense platforms
        RaycastHit2D hit = Physics2D.Raycast((Vector2)transform.position , Vector2.down,Mathf.Infinity, mask);

        if (hit)
        {
            localMinimum_y = hit.point.y;
        }
        else
        {
            localMinimum_y = -10;
        }


        //determine whether the player can fall down
        // -0.6 is the distance between the player's transform.position and his legs
        if(transform.position.y -0.6f < localMinimum_y)
        {
            speed_y = 0;
        }
        else
        {
            speed_y = 1;
        }


        //determine velocities

        velocity_y = speed_y * Physics2D.gravity.y * Time.deltaTime;
        velocity_x = Input.GetAxis("Horizontal") * speed_x * Time.deltaTime;


        //movement
        transform.Translate(new Vector2(velocity_x, velocity_y));
    }




}

Тем не менее, игрок продолжает застревать на платформе. Может кто-нибудь помочь мне, где проблема и как я могу ее вылечить? Или, если моя идея совершенно плоха, можете ли вы дать какие-либо предложения о том, как это сделать? Спасибо

1 Ответ

2 голосов
/ 05 февраля 2020

Я рекомендую следовать этому руководству, если вы хотите go способ создания негибкого тела для создания 2D-платформерной игры. Он показывает вам, как управлять raycast, чтобы заставить персонажа двигаться на земле, склонах, платформах и многое другое. Это действительно требует ресурсов и, вероятно, вам очень поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...