1
当我拖动“block1”组时,我将其作为一个整体进行拖动。但我想要做的是,当我放入“插槽”时,我想取消组合它并获取所有“子(立方体)”,并将其重新保存到“插槽”中。每个立方体到每个插槽。我怎么做?设置transform.parent = null只需从块面板中删除“block1”即可。如何在Unity中使用C#将对象拆分为其父项?
这里的脚本:
using UnityEngine;
using System.Collections;
using UnityEngine.EventSystems;
public class DragHandler : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler{
\t public static GameObject piece;
\t Vector3 startPosition;
\t Transform startParent;
\t public static GameObject cube;
\t #region IBeginDragHandler implementation
\t public void OnBeginDrag (PointerEventData eventData)
\t {
\t \t
\t \t piece = gameObject;
\t \t startPosition = transform.position;
\t \t startParent = transform.parent;
\t \t GetComponent<CanvasGroup>().blocksRaycasts = false;
\t }
\t #endregion
\t #region IDragHandler implementation
\t public void OnDrag (PointerEventData eventData)
\t {
\t \t transform.position = eventData.position;
\t }
\t #endregion
\t #region IEndDragHandler implementation
\t public void OnEndDrag (PointerEventData eventData)
\t {
\t \t piece = null;
\t
\t \t GetComponent<CanvasGroup>().blocksRaycasts = false;
\t \t if(transform.parent == startParent){
\t \t \t transform.position = startPosition;
\t \t \t GetComponent<CanvasGroup>().blocksRaycasts = true;
\t \t }
\t }
\t #endregion
}