Hey merhaba ziyaretçi bize destek olmak ister misin ? Hemen Kayıt Ol Seni hiç sıkmadan kayıt edeceğiz endişelenmek bize destek olduğun için teşekkürler.



  • Toplam: 0 Oy - Ortalama: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Space Zıplama Sorunu lütfen yardım
#1
Exclamation 
zıplama yapmaya çalıştığımda space'e abanıyorum anca 1 kere zıplıyor ve animasyon bile çalışmıyor yardımcı olursanız sevinirim




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

public class PlayerController : MonoBehaviour
{
    public float runSpeed, jumpForce;
    public float jumpHeight = .4f;
    private float moveInput;

    private Rigidbody2D myBody;
    private Animator anim;

    public Transform groundCheck;
    public LayerMask groundLayer;

    private bool facingRight = true;

    private Vector3 range;

    void Awake()
    {
        myBody = GetComponent<Rigidbody2D>();
        anim = GetComponent<Animator>();
    }

    
    void FixedUpdate()
    {
        Movement();
        CheckCollisionForJump();
    }

    void Movement()
    {
        moveInput = Input.GetAxisRaw("Horizontal") * runSpeed;

        anim.SetFloat("Speed", Mathf.Abs(moveInput));

        myBody.velocity = new Vector2(moveInput, myBody.velocity.y);

        if(Input.GetKeyUp(KeyCode.Space))
            if(myBody.velocity.y > 0)
            {
                myBody.velocity = new Vector2(myBody.velocity.x, myBody.velocity.y * jumpHeight);
                anim.SetBool("Jump", true);
            }
            else
            {
                anim.SetBool("Jump", false);
            }

        if (moveInput > 0 && !facingRight || moveInput < 0 && facingRight)
            Flip();
    }

    void CheckCollisionForJump()
    {
        Collider2D bottomHit = Physics2D.OverlapBox(groundCheck.position, range, 0, groundLayer);

        if(bottomHit != null)
        {
            if(bottomHit.gameObject.tag == "Ground" && Input.GetKeyDown(KeyCode.Space))
            {
                myBody.velocity = new Vector2(myBody.velocity.x, jumpForce);
            }
        }
    }


    void Flip()
    {
        facingRight = !facingRight;

        Vector3 transformScale = transform.localScale;
        transformScale.x *= -1;
        transform.localScale = transformScale;
    }
}
  Cevapla
#2
Kod:
if(Input.GetKeyUp(KeyCode.Space))
           if(myBody.velocity.y > 0)
           {
               myBody.velocity = new Vector2(myBody.velocity.x, myBody.velocity.y * jumpHeight);
               anim.SetBool("Jump", true);
           }
           else
           {
               anim.SetBool("Jump", false);
           }
Burda if(Input.GetKeyUp(KeyCode.Space)) koşulunun süslü parantezleri olmadığından kod şu şekle dönüşüyor:

Kod:
if(Input.GetKeyUp(KeyCode.Space))
    if(myBody.velocity.y > 0)
    {
        myBody.velocity = new Vector2(myBody.velocity.x, myBody.velocity.y * jumpHeight);
        anim.SetBool("Jump", true);
    }
else
{
    anim.SetBool("Jump", false);
}

Yani eğer space'den elini çekmiyorsan her zaman anim.SetBool çalışıyor. Bu animasyon sorunundu. Şimdi zıplama sorununa gelirsek, mevcut olan velocity.y'yi bir değerle çarpmak yerine onun üstüne ekleme yapman daha sağlıklı olacaktır:

Kod:
myBody.velocity = new Vector2(myBody.velocity.x, myBody.velocity.y * jumpHeight); //Değil
myBody.velocity = new Vector2(myBody.velocity.x, myBody.velocity.y + (vector2.up * jumpHeight));
//Jump height değerini duruma göre artırıp azaltırsın
Birde boşluk tuşuna bastığında işlem yap, GetKeyUp değil, GetKeyDown, ardından aşağı doğru raycast gönderip zemine çarpıyorsa zıplama işlemini yapabilirsin.
Linkleri görüntüleyebilmek için Kayıt ol manız veya Giriş yapmanız gerekiyor.Anlayışınız için teşekkürler.!
resim
  Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Mekanik Yardım dcnsll 0 141 04-04-2022, Saat: 21:49
Son Yorum: dcnsll
  Sıralı Giden Instantiate Sorunu birilerigibiyim 1 138 27-03-2022, Saat: 16:42
Son Yorum: TheTudors
Question Vuforia 3D Nesnesinin Sabit Kalma Sorunu cverf127 0 161 05-01-2022, Saat: 01:44
Son Yorum: cverf127
Wink Farklı cihazlarda görüntülenme sorunu CafeBull 0 167 18-12-2021, Saat: 18:45
Son Yorum: CafeBull
Sad Objeyi İleri Hareket Ettirme Sorunu FurkanSafa 0 253 11-12-2021, Saat: 12:00
Son Yorum: FurkanSafa

Hızlı Menü:


Konuyu Okuyanlar: 1 Ziyaretçi