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.
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;
}
}
}
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.
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;
}
}
}
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;
}
}
}
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.