如果在对象中放置对象并且它将创建一个事件

时间:2016-09-15 11:01:14

标签: c# button unity3d drag-and-drop

public GameObject CloseCloset;
public GameObject OpenCloset;
public GameObject Key;
OnEndDrag(PointerEventData eventData)
{

  if (key. *position?* or * OverThe CloseCloset?*)
  {
      CloseCloset.setActive(false);
      OpenCloset.setActive(true); 
  }
}

我不知道如何设置它。这是我的游戏(论文)的最后一个问题。我有这个对象(Key)和另外两个对象(Open和Close Closet),

我想要的是当我将我的项目(Key)ove拖到CloseCloset时,CloseCloset将消失并且Open Closet将出现。它就像Close CLoset有一个锁定,当我拖动它时,它将创建一个关闭壁橱将打开的事件。我希望我迟早能得到答案。

顺便说一下。所有这些都是Image,而key是唯一拥有 BUTTON 组件

的组件

这个我创造的游戏就像游戏 CUBE ESCAPE

1 个答案:

答案 0 :(得分:1)

我建议像这样建立你的壁橱:

创建一个空的游戏对象(“Closet”)并使锁定模型和开放模型成为这个模型的子项。禁用开放模型。

然后让“Closet”处理掉落并比较游戏对象(将对键的引用存储为字段并将其与被删除的游戏对象进行比较)。如果它们相同,请禁用锁定的模型并启用打开的模型。

您还可以使用标记来比较对象,但是当您有许多不共享密钥的密钥和壁橱时,这可能会变得混乱。

编辑:
您可以使用https://docs.unity3d.com/ScriptReference/EventSystems.IDropHandler.html来处理丢弃。