Переход на единство, если коснуться земли

#c# #unity3d

#c# #unity3d

Вопрос:

При щелчке левой кнопкой мыши Игрок должен прыгнуть, если условие столкновения с «Наземным» слоем верно.

Проблема: когда я нажимаю, он не совершает переход.

Иерархия (3)

  • Основная камера
  • Игрок
  • Этаж

Информация об инспекторе: введите описание изображения здесь

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

public class PlayerController : MonoBehaviour
{
    
    public float jumpForce = 25f;
    private Rigidbody2D rigidBody;
    
    void Awake()
    {
        rigidBody = GetComponent<Rigidbody2D>();    
    }
    
    void Update()
    {
        if (Input.GetMouseButtonDown(0)) {
            Jump();
        }
    }
    
    void Jump(){
    
        if (IsGrounded()) {
            rigidBody.AddForce(Vector2.up * jumpForce, ForceMode2D.Impulse);
        }
    }
        
     
    public LayerMask groundLayer;
    
    bool IsGrounded()
    {
        if (Physics2D.Raycast(this.transform.position, Vector2.down, 0.2f, groundLayer.value)) {
            return true;
        }
        else {
            return false;
        }
    }
        
}
  

Ответ №1:

Я не вижу, насколько велик ваш плеер, но убедитесь, что радиопередача действительно может достигать пола, поскольку она всего 0,2 метра в длину. Вы можете использовать Debug.DrawLine() для просмотра радиопередачи в редакторе.

Также убедитесь, что значение силы прыжка достаточно велико.

Комментарии:

1. Да, радиопередача не достигла пола, поэтому не может применить условный оператор.