Unity Raycast sürekli false dönüyor

  • Konuyu başlatan enma
  • Başlangıç Tarihi
  • Mesaj 1
  • Görüntüleme 21

enma

Hectopat
Katılım
9 Mayıs 2022
Mesajlar
26
Daha fazla  
Cinsiyet
Erkek
Isgrounded methodu sürekli bir şekilde raycast yüzünden false dönüyor. Sebebini bir türlü çözemedim. Yardımcı olabilir misiniz? Grounded objesinde grounded layerı seçili bu arada.

Using System;
Using Unity. Visualscripting;
Using unityengine;
Using unityengine. Inputsystem;

Public class playercontroller: Monobehaviour.
{

[Header("References")]
[SerializeField] private transform _orientationtransform;

[Header("Movement Settings")]
[SerializeField] private float _movementspeed;

[Header("Jumpt Settings")]
[SerializeField] private key _jumpkey;
[SerializeField] private float jumpforce;
[SerializeField] private float jumpcooldown;

[Header("Ground Check Settings")]
[SerializeField] private float _playerheigh;
[SerializeField] private layermask _groundlayer;

Private bool isgrounded;
Private boolean _canjump = true;
Private rigidbody _playerrigibody;
Private Vector3 _movementdirection;

Private float _horizontalınput;
Private float _verticalınput;

Void Awake()
{
_playerrigibody = GetComponent<Rigidbody>();
_playerrigibody. Freezerotation = true;
}

Void Update()
{
SetInput();
}

Private Void SetInput()
{
_horizontalınput = 0;
_verticalınput = 0;
İf (keyboard. Current. Akey. İspressed) _horizontalınput = -1;
Else if (keyboard. Current. Dkey. İspressed) _horizontalınput = 1;

İf (keyboard. Current. Wkey. İspressed) _verticalınput = 1;
Else if (keyboard. Current. Skey. İspressed) _verticalınput = -1;

İf (keyboard. Current[_jumpKey].ispressed && _canjump && IsGrounded())
{
_canjump = false;
setPlayerJump();
Invoke(nameof(resetjump), 0.5F);
}
}

Private Void setPlayerMovement()
{
_movementdirection = _orientationtransform. Forward * _verticalınput +
_orientationtransform. Right * _horizontalınput;

_playerrigibody. Addforce(_movementdirection. Normalized * _movementspeed, forcemode. Force);
}
Private Void fixedUpdate()
{
setPlayerMovement();
}

Void setPlayerJump()
{
Debug.Log("jump oldu");
Vector3 velocity = _playerrigibody. Linearvelocity;
Velocity. Y = 0;
_playerrigibody. Linearvelocity = velocity;
_playerrigibody. Addforce(transform. Up * jumpforce, forcemode. Impulse);
}

Void ResetJump()
{
_canjump = true;
}

Boolean IsGrounded()
{
Float raydistance = (_playerheigh * 0.5F) + 0.2F;
Bool ishit = physics. Raycast(transform. Position, Vector3.down, raydistance, _groundlayer);
Debug.Log(ishit);
Color raycolor = ishit? Color. Green: Color. Red;
Debug. Drawray(transform. Position, Vector3.down * raydistance, raycolor);
Return ishit;
}
}
 

Dosya Ekleri

  • Ekran görüntüsü 2025-11-27 193530.png
    Ekran görüntüsü 2025-11-27 193530.png
    197,7 KB · Görüntüleme: 5

Bu konuyu görüntüleyen kullanıcılar

Technopat Haberler

Yeni konular

Geri
Yukarı