C# Unity buton kontrolü nasıl yapılır?

emre1035

Femtopat
Katılım
20 Nisan 2023
Mesajlar
40
Daha fazla  
Cinsiyet
Erkek
Merhaba. Ben bir oyun yapıyorum. Ancak mobil için yapıyorum. Ama beni kullandığım kaynak bilgisayar için. O yüzden klavye tuşları ile yapılıyor. Ben butonlarla yapmak istiyorum. Bunu nasıl yapabilirim?

Kod:

C#:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class PlayerController : MonoBehaviour
{

    public float harakethızı = 10;
    public float speed = 5f;
    public float min_X, max_X;


    void Start()
    {

    }

    void Update()
    {
        MovePlayer();
    }



    void MovePlayer()
    {
        if (Input.GetAxisRaw("Horizontal") > 0f)
        {
            Vector3 temp = transform.position;
            temp.x += speed * Time.deltaTime;

            if (temp.x > max_X)
                temp.x = max_X;

            transform.position = temp;
        }


        else if (Input.GetAxisRaw("Horizontal") < 0f)
        {
            Vector3 temp = transform.position;
            temp.x -= speed * Time.deltaTime;

            if (temp.x < min_X)
                temp.x = min_X;

            transform.position = temp;
        }

    }
}
 
Son düzenleyen: Moderatör:
Unity içerisinde buttonları tanımlayacaksın. Bu tanımladığın butonları yerleştir. Unity içerisindeki ayarlamaları yap. Kodlama içerisinde normal hareket kodlarından farklı olarak ne yapmaya çalıştınız?
 
Unity içerisinde buttonları tanımlayacaksın. Bu tanımladığın butonları yerleştir. Unity içerisindeki ayarlamaları yap. Kodlama içerisinde normal hareket kodlarından farklı olarak ne yapmaya çalıştınız?
Ben ekrandaki butona tıklayarak yapmaya çalıştım burada sadece klavye tuşlarına basarak hareket ediyor.
 
Tamam işte şimdi yapman gereken şey game scene'e koyacağın ileri ok butonuna sadece ileri gitmesini sağlayacak olan kodu ekleyeceksin. Geri ok butonuna ise geri gitmesini sağlayan butonu ekleyeceksin. Sağ sol için de aynısını yapacaksın.
Bunları yapman için de bu kodu biraz değiştirmen gerekecektir.
 
MovePlayerla ifleri sil, iflerin yerine public function ata, sonra buttonlar için script oluştur, scriptleri buttonlara at, PlayerController playerController yaz ve awakete GameObject. FindObjectOfType ile ata,

Using UnityEngine. EventSystem kütüphane ekle,

MonoBehaviour yanına IPointerDownHandler, IPointerUpHandler interfacelerini ekle,

[SerializeField] public bool isRight = false; sağ tuşsa editörden tickle
Bool buttonPressed; //boolunu ekle
Void Update(){
İf(buttonPressed){
İf(isRight){
PlayerController. Deyip functionu çağır
}
}Else if(!isRight){
PlayerController.
}
}
Void IPointerDownHandlet. OnPointetDown(PointerEventData eventData){
ButtonPressed =true;
}
Void IPointerUpHandler. OnPointerUp(PointerEventData eventData){
ButtonPressed = false;
}
Telefondan yazdım yanlış yerler olabilir,

Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.

Buradan kopya çektim
 
Son düzenleme:
MovePlayerla ifleri sil, iflerin yerine public function ata, sonra buttonlar için script oluştur, scriptleri buttonlara at, PlayerController playerController yaz ve awakete GameObject. FindObjectOfType ile ata,

Using UnityEngine. EventSystem kütüphane ekle,

MonoBehaviour yanına IPointerDownHandler, IPointerUpHandler interfacelerini ekle,

[SerializeField] public bool isRight = false; sağ tuşsa editörden tickle
Bool buttonPressed; //boolunu ekle
Void Update(){
İf(buttonPressed){
İf(isRight){
PlayerController. Deyip functionu çağır
}
}Else if(!isRight){
PlayerController.
}
}
Void IPointerDownHandlet. OnPointetDown(PointerEventData eventData){
ButtonPressed =true;
}
Void IPointerUpHandler. OnPointerUp(PointerEventData eventData){
ButtonPressed = false;
}
Telefondan yazdım yanlış yerler olabilir,

Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.

Buradan kopya çektim
çok sağol geç gördüm ama
 

Geri
Yukarı