Exemple #1
0
        private void AttachWallsTo(GameObject spaceObjectToAttachWallTo)
        {
            if (endWallBuildingInstructions == null)
            {
                endWallBuildingInstructions = endWallBuildingInstructionsPrefab
                                              .GetComponent <SinglePlacementBuildingInstructions>();

                if (endWallBuildingInstructions == null)
                {
                    throw new InvalidOperationException("No BuildingInstructions component found attached to " +
                                                        $"{endWallBuildingInstructionsPrefab}. Please check validity " +
                                                        "of this prefab.");
                }
            }

            int numExitPoints = spaceObjectToAttachWallTo.transform.Cast <Transform>()
                                .Count(child => child.CompareTag(BuildingInstructions.AttachmentPointTag) ||
                                       child.CompareTag(BuildingInstructions.ExitPointTag));

            for (int i = 0; i < numExitPoints; i++)
            {
                GameObject[] built = endWallBuildingInstructions.Build(new[] { spaceObjectToAttachWallTo }, false);
                foreach (GameObject obj in built)
                {
                    obj.transform.parent = spaceObjectToAttachWallTo.transform;
                }
            }
        }
        private GameObject[] BuildSpaceForMissionSymbol(string missionSymbol, GameObject[] relativeSpaceObjects = null)
        {
            BuildingInstructions buildingInstructions = GetRandomBuildingInstructions(missionSymbol);

            return(buildingInstructions.Build(relativeSpaceObjects));
        }