C# Koddaki hata nerededir?

Buraaaaak3

Femtopat
Katılım
13 Şubat 2024
Mesajlar
8
Daha fazla  
Cinsiyet
Erkek
C#:
using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEditor;
using UnityEditor.Tilemaps;
using UnityEngine;
using UnityEngine.InputSystem;



public class MapSystem : MonoBehaviour
{
   public Camera Kamera;

  void Start()
  {
    Kamera = GameObject.Find("Main Camera").GetComponent<Camera>();



  }

void Update()
    {
        if (Input.touchCount>0)
        {
            Touch Parmak = Input.GetTouch(0);
            RaycastHit2D dokunulanNesne = Physics2D.Raycast(Kamera.ScreenToWorldPoint(Parmak.position), Vector2.zero);

     
            if (Physics2D.Raycast(Kamera.ScreenToWorldPoint(Parmak.position),Vector2.zero))
            {
                if (dokunulanNesne.collider !=null)
                {
                    Destroy(dokunulanNesne.collider.gameObject);
                 
                }
            }
        }

      }





     }
 
Son düzenleyen: Moderatör:
Input.Touchcount sadece dokunmatik telefonlar için 0'dan büyük olur. Mouse input. touch countu değiştirmez. Input.GetMouseButtonDown(0) mı diye kontrol edip Input.mousePosition ile Parmak.position'un yerini değiştirmelisiniz.
 

Hocam yazılım dersi veriyor musunuz acaba oyun yapımı ile ilgili. Biraz yazılım temelim var.
 
Input.Touchcount sadece dokunmatik telefonlar için 0'dan büyük olur. Mouse input. touch countu değiştirmez. Input.GetMouseButtonDown(0) mı diye kontrol edip Input.mousePosition ile Parmak.position'un yerini değiştirmelisiniz.
Yanlış anlamış da olabilirim ama zaten dokunmatik telefondan işlem yapmaya çalışıyorum mouse ile bir işlem yapmayacağım

C#:
public class MapSystem : MonoBehaviour
{
   public Camera Kamera;

  void Start()
  {
    Kamera = GameObject.Find("Main Camera").GetComponent<Camera>();



  }

void Update()
    {
        if (Input.touchCount>0)
        {
            Touch Parmak = Input.GetTouch(0);
            RaycastHit2D dokunulanNesne = Physics2D.Raycast(Kamera.ScreenToWorldPoint(Parmak.position), Vector2.zero);

     
            if (Physics2D.Raycast(Kamera.ScreenPointToRay(Parmak.position),Vector3.zero)) 
 //şuan burası hata veriyor z yi sabitlemeye çalışıyorum
            {
                if (dokunulanNesne.collider.gameObject.name == "state_1")
                {
                    Destroy(dokunulanNesne.collider.gameObject);
                 
                }
            }
        }

      }
 
Son düzenleme:
C#:
if(Physics2D.Raycast(Kamera.ScreenPointToRay(Parmak.position),Vector3.zero))
Bu kısmı aşağıdaki şekilde değiştirildiğinde çalışıyor mu?
C#:
if (dokunulanNesne.collider != null)
 
Malesef. Kodu başka yerden bulmayı deneyeceğim. Basit bir şey aslında ama bir türlü bulamıyorum 2D projedeki nesneye dokunmatik üzerinden tıklayınca herhangi bir etkileşim yaratmak istiyorum fakat olmuyor.
 
Yanlış anlamış da olabilirim ama zaten dokunmatik telefondan işlem yapmaya çalışıyorum mouse ile bir işlem yapmayacağım
C#:
    if (Input.touchCount > 0)
    {
        Touch Parmak = Input.GetTouch(0);
        // Ekrandaki dokunma pozisyonunu dünya koordinatlarına çevir
        Vector2 dokunulanPozisyon = Camera.main.ScreenToWorldPoint(Parmak.position);
        RaycastHit2D dokunulanNesne = Physics2D.Raycast(dokunulanPozisyon, Vector2.zero);

        if (dokunulanNesne != null && dokunulanNesne.collider != null) // Bir nesneye çarptıysa
        {
            if (dokunulanNesne.collider.gameObject.name == "state_1")
            {
                Destroy(dokunulanNesne.collider.gameObject);
            }
        }
    }

Bu şekilde ilerlemeniz daha sağlıklı olur. Hata almanızın sebebi dokunulan nesnenin olmaması dolayısıyla olmayan bir objenin collider'ına erişmeniz olabilir. Daha net anlayabilmemiz için lütfen hata mesajını da paylaşır mısınız?

Hocam yazılım dersi veriyor musunuz acaba oyun yapımı ile ilgili. Biraz yazılım temelim var.
Merhabalar maalesef ders vermiyorum. Hem tam zamanlı bir işte oyun geliştirici olarak çalışıyorum hem kendi stüdyomda oyun yapmaya çalışıyorum dolayısıyla zamanım biraz az. Ve ders verecek kadar yetkin de değilim daha yeni mezun oldum üniversiteden. Ama takıldığınız bir yer olduğunda konu açıp etiketlerseniz elimden geldiğince yardımcı olmaya çalışırım.
 
"The result of the expression is always 'true' since a value of type 'bool' is never equal to 'null' of type 'bool?'"
 
"The result of the expression is always 'true' since a value of type 'bool' is never equal to 'null' of type 'bool?'"
Bu bir uyarı mesajıdır herhalde. Hata olarak dönmez bu. Siz 2 boyutlu bir projede oyuncu ekrana bastığında parmağının altındaki sahne objesini seçmek istiyorsunuz doğru mu?
 
Bu bir uyarı mesajıdır herhalde. Hata olarak dönmez bu. Siz 2 boyutlu bir projede oyuncu ekrana bastığında parmağının altındaki sahne objesini seçmek istiyorsunuz doğru mu?
Evet. Objeyle panel vs. açmak istiyorum.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…