Çözüldü Unity sürükle bırak işleminde resim arkada kalıyor

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

maydonozdiyarı

Hectopat
Katılım
25 Haziran 2021
Mesajlar
1.656
Çözümler
4
Daha fazla  
Cinsiyet
Erkek
Unity'de biraz yeniyim, bugün sürükle bırak mantığını öğrendim fakat sürüklediğim nesne bıraktığım yerin arkadasında kalıyor. Ve hiçbir erişim sağlayamıyorum. Sizlerin daha iyi görmesi için bıraktığım yeri, yani çöp kutusunu biraz daha küçülttüm. En başta ikisinde de "Sprite Renderer" Component'i yoktu fakat benim gibi problem yaşayanlar hep aynı yöntemle çözmüş. Ben de ekleyip "Order in Layer" ayarını değiştireyim dedim fakat yine olmadı. "Order in Layer" ayarları da fotoğraftaki gibi, sorunu anlayamadım. @N0rvecli @Vavien.

 

Dosya Ekleri

  • 1687731829836.png
    59,6 KB · Görüntüleme: 39
  • resim_2023-06-26_012422661.png
    52,7 KB · Görüntüleme: 40
  • resim_2023-06-26_012459592.png
    7,7 KB · Görüntüleme: 32
Son düzenleyen: Moderatör:
Çözüm
Scriptini yazdın mı?

Hocam hepsini hızlı hızlı 10 dakikada yaptım, galiba dikkat hatasıyla bir şeyi etkinleştirmişim. Problem düzeldi böyle hızlı hızlı yapmak da eğlenceliymiş. Bu arada hiç "Sprite Renderer" ile uğraşmadım.

İsteyenler için kodlar bu şekilde. Tabii ki spectator menüsünden yapılması gereken ayarlar var. Sadece böyle kalmıyor.

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

public class DragDrop : MonoBehaviour, IBeginDragHandler, IEndDragHandler, IDragHandler
{
    private RectTransform rectTransform;
    private CanvasGroup canvasGroup;

    private void Awake()
    {
        rectTransform = GetComponent<RectTransform>();
        canvasGroup = GetComponent<CanvasGroup>();
    }

    public void OnBeginDrag(PointerEventData eventData)
    {
        canvasGroup.alpha = 0.6f;
        canvasGroup.blocksRaycasts = false;
    }

    public void OnDrag(PointerEventData eventData)
    {
        rectTransform.anchoredPosition += eventData.delta;
    }

    public void OnEndDrag(PointerEventData eventData)
    {
        canvasGroup.alpha = 1f;
        canvasGroup.blocksRaycasts = true;
    }

    
}

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

public class DropManager : MonoBehaviour,IDropHandler
{
    public void OnDrop(PointerEventData eventData)
    {
        if(eventData != null)
        {
            eventData.pointerDrag.GetComponent<RectTransform>().anchoredPosition = GetComponent<RectTransform>().anchoredPosition;
        }
    }

    
}

Scriptini yazdın mı?
 
Scriptini yazdın mı?

Hocam hepsini hızlı hızlı 10 dakikada yaptım, galiba dikkat hatasıyla bir şeyi etkinleştirmişim. Problem düzeldi böyle hızlı hızlı yapmak da eğlenceliymiş. Bu arada hiç "Sprite Renderer" ile uğraşmadım.

İsteyenler için kodlar bu şekilde. Tabii ki spectator menüsünden yapılması gereken ayarlar var. Sadece böyle kalmıyor.

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

public class DragDrop : MonoBehaviour, IBeginDragHandler, IEndDragHandler, IDragHandler
{
    private RectTransform rectTransform;
    private CanvasGroup canvasGroup;

    private void Awake()
    {
        rectTransform = GetComponent<RectTransform>();
        canvasGroup = GetComponent<CanvasGroup>();
    }

    public void OnBeginDrag(PointerEventData eventData)
    {
        canvasGroup.alpha = 0.6f;
        canvasGroup.blocksRaycasts = false;
    }

    public void OnDrag(PointerEventData eventData)
    {
        rectTransform.anchoredPosition += eventData.delta;
    }

    public void OnEndDrag(PointerEventData eventData)
    {
        canvasGroup.alpha = 1f;
        canvasGroup.blocksRaycasts = true;
    }

    
}

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

public class DropManager : MonoBehaviour,IDropHandler
{
    public void OnDrop(PointerEventData eventData)
    {
        if(eventData != null)
        {
            eventData.pointerDrag.GetComponent<RectTransform>().anchoredPosition = GetComponent<RectTransform>().anchoredPosition;
        }
    }

    
}
 
Çözüm

Yazılım da küçücük hata dahi 1 saatlik işi 3 4 saate kadar uzatabilir yazılım bittiği zaman üstünden bir kere daha gözle geç eksik var mı diye eline sağlık.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…