/// <summary> /// Verbindet die beiden übergebenen WorldObjects, falls möglich /// </summary> /// <param name="a"></param> /// <param name="b"></param> public void ConnectWorldObjects(WorldObject a, WorldObject b) { if (Vector3.Distance(a.transform.position, b.transform.position) > 1.1f) { Debug.Log("Die WorldObjects '" + a.gameObject.name + "' und '" + b.gameObject.name + "' sind zu weit auseinander, um verbunden zu werden."); return; } if (a.myGroup == null && b.myGroup == null) { WorldObjectGroup group = Instantiate(groupObjectPrefab).GetComponent <WorldObjectGroup>(); group.transform.SetParent(this.transform); group.GetComponent <InteractiveObject>().SetStartingPositionAndRotation(a.GetComponent <InteractiveObject>().posX, a.GetComponent <InteractiveObject>().posY, new Vector2(0, -1)); group.transform.position = new Vector3(a.GetComponent <InteractiveObject>().posX + 0.5f, a.GetComponent <InteractiveObject>().posY + 0.5f); worldObjectGroups.Add(group.gameObject); group.AddObjectToGroup(a); } a.AttemptToConnectWorldObject(b); b.AttemptToConnectWorldObject(a); }