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
  Unity Temas ve Zıplama Sorunu drkome 2 372 02-11-2020, Saat: 22:45
Son Yorum: Satyr
Exclamation Ağır Çekim Sorunu Yardım. xrasit 2 184 28-08-2020, Saat: 13:58
Son Yorum: No_99
  transfor rotation sorunu darknest52 6 379 14-08-2020, Saat: 21:18
Son Yorum: darknest52
  Bir yardım edin! Crax5466 1 300 31-05-2020, Saat: 01:56
Son Yorum: Maximen
  Unity 3d Mobile Kontrol sorunu Utas990 1 432 27-04-2020, Saat: 17:41
Son Yorum: mtat0640

Hızlı Menü:


Konuyu Okuyanlar: 1 Ziyaretçi