Unity3d 显示可能位置并将对象放在其中一个位置的最佳实践

Unity3d 显示可能位置并将对象放在其中一个位置的最佳实践,unity3d,unity3d-editor,Unity3d,Unity3d Editor,我有很多游戏对象需要实例化并放在场景中可能的位置上 我有一个玩家可以放置游戏对象的规则列表(例如,大盒子上只有小盒子,小盒子上只有球体等等) 我知道我可以把每一条规则都写进“如果”,但我认为这不是最有效的方法。我应该如何保存一个用户可以放置游戏对象的规则列表?我的脚本应该如何检查和显示可能的位置?我将非常感谢任何关于如何开始的想法,让它变得优雅和高效。有很多方法可以做到这一点。 我更喜欢的是保持每一个对象都有组织和可配置(查看对象的编程结构) 我建议定义每个对象可以放置的位置。这里有一个例子 p

我有很多游戏对象需要实例化并放在场景中可能的位置上

我有一个玩家可以放置游戏对象的规则列表(例如,大盒子上只有小盒子,小盒子上只有球体等等)


我知道我可以把每一条规则都写进“如果”,但我认为这不是最有效的方法。我应该如何保存一个用户可以放置游戏对象的规则列表?我的脚本应该如何检查和显示可能的位置?我将非常感谢任何关于如何开始的想法,让它变得优雅和高效。

有很多方法可以做到这一点。 我更喜欢的是保持每一个对象都有组织和可配置(查看对象的编程结构)

我建议定义每个对象可以放置的位置。这里有一个例子

public yourClass
{
   public GameObject ObjectToPlace;
   public List<GameObject> ObjectToPlaceOnList;

   public bool CanObjectBePlaced(GameObject targetObjectToPlaceUpon)
   {
      if (ObjectToPlaceOnList.Contains(targetObjectToPlaceUpon))
      {
         return true;
      }

   return false;
   }
}
public类
{
公共游戏对象ObjectToPlace;
公共列表对象PlaceOnlist;
公共bool CanObjectBePlaced(游戏对象targetObjectTopPlaceOn)
{
if(ObjectToPlaceOnList.Contains(targetObjecttoPlaceOn))
{
返回true;
}
返回false;
}
}
当然,根据您当前的脚本,您的脚本可能看起来有所不同