Buraaaaak3
Femtopat
- Katılım
- 13 Şubat 2024
- Mesajlar
- 8
Daha fazla
- Cinsiyet
- Erkek
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);
}
}
}
}
}
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 ınput. 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ğımInput.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.
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);
}
}
}
}
if(Physics2D.Raycast(Kamera.ScreenPointToRay(Parmak.position),Vector3.zero))
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.Bu kısmı aşağıdaki şekilde değiştirildiğinde çalışıyor mu?C#:if(Physics2D.Raycast(Kamera.ScreenPointToRay(Parmak.position),Vector3.zero))
C#:if (dokunulanNesne.collider != null)
Yanlış anlamış da olabilirim ama zaten dokunmatik telefondan işlem yapmaya çalışıyorum mouse ile bir işlem yapmayacağım
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);
}
}
}
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.Hocam yazılım dersi veriyor musunuz acaba oyun yapımı ile ilgili. Biraz yazılım temelim var.
"The result of the expression is always 'true' since a value of type 'bool' is never equal to 'null' of type 'bool?'"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?
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.
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?"The result of the expression is always 'true' since a value of type 'bool' is never equal to 'null' of type 'bool?'"
Evet. Objeyle panel vs. açmak istiyorum.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?