#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. Да, радиопередача не достигла пола, поэтому не может применить условный оператор.