using System.Collections; using System.Collections.Generic; using UnityEngine; namespace BuildSystem { public enum RoadType { Straight,T,Ten } public enum DirIsHaveRoad { Yes,No,None } public enum RoadNumberType { None,Two,Three } [CreateAssetMenu(fileName = "New PlaceObj", menuName = "PlaceObject")] public class PlaceObject_SO : ScriptableObject { public string nameString; public Transform prefab; public int width; public int height; public RoadType roadType;//道路类型 public RoadNumberType[] roadNumberType = new RoadNumberType[4];//道路车道类型 public DirIsHaveRoad[] isHaveRoad = new DirIsHaveRoad[4];//道路是否有通道 public List roadGoInfo; private void OnEnable() { roadGoInfo = new List(); for (int i = 0; i < 4; i++) { for (int j = 0; j < 3; j++) { object[] isCan = new object[4] { null, null, null, null }; //如果对应方向上有道路 进行特殊设置 if (isHaveRoad[i] == DirIsHaveRoad.Yes) { //遍历四个方向 如果方向有道路说明可以设置 if (roadNumberType[i] == RoadNumberType.Two && j == 2) { roadGoInfo.Add(isCan); break; } for (int k = 0; k < 4; k++) { if (isHaveRoad[k] == DirIsHaveRoad.Yes) { isCan[k] = true; } } //把自己方向的设置制空 isCan[i] = null; } roadGoInfo.Add(isCan); } } if (nameString == "T2Down") { roadGoInfo = null; roadGoInfo = new List() { new object[4]{null,null,null,null}, new object[4]{null,null,null,null}, new object[4]{null,null,null,null}, new object[4]{null,null,true,true}, new object[4]{null,null, true, true}, new object[4]{null,null,null,null}, new object[4]{null,true,null,null}, new object[4]{null,null,null,true}, new object[4]{null,null,null,null}, new object[4]{null,true,true,null}, new object[4]{null,true,true,null}, new object[4]{null,null,null,null}, }; } else if (nameString == "T2Left") { roadGoInfo = null; roadGoInfo = new List() { new object[4]{null,null,true,true}, new object[4]{null, null, true, true}, new object[4]{null,null,null,null}, new object[4]{null,null,null,null}, new object[4]{null,null, null, null}, new object[4]{null,null,null,null}, new object[4]{true,null,null,true}, new object[4]{ true, null, null,true}, new object[4]{null,null,null,null}, new object[4]{null,null, true, null}, new object[4]{true, null, null, null}, new object[4]{null,null,null,null}, }; } else if (nameString == "T2Right") { roadGoInfo = null; roadGoInfo = new List() { new object[4]{null,true,true,null}, new object[4]{null, true, true, null}, new object[4]{null,null,null,null}, new object[4]{true,null,null,null}, new object[4]{null,null, true, null}, new object[4]{null,null,null,null}, new object[4]{true,true,null,null}, new object[4]{ true, true, null,null}, new object[4]{null,null,null,null}, new object[4]{null,null, null, null}, new object[4]{null, null, null, null}, new object[4]{null,null,null,null}, }; } else if (nameString == "T2Up") { roadGoInfo = null; roadGoInfo = new List() { new object[4]{null,null, null, true}, new object[4]{null, true, null, null}, new object[4]{null,null,null,null}, new object[4]{true,null,null,true}, new object[4]{ true, null, null, true}, new object[4]{null,null,null,null}, new object[4]{null, null, null,null}, new object[4]{ null, null, null,null}, new object[4]{null,null,null,null}, new object[4]{true, true, null, null}, new object[4]{ true, true, null, null}, new object[4]{null,null,null,null}, }; }else if (nameString == "T3Down") { roadGoInfo = null; roadGoInfo = new List() { new object[4]{null,null,null,null}, new object[4]{null,null,null,null}, new object[4]{null,null,null,null}, new object[4]{null,null,true,true}, new object[4]{null,null, true, true}, new object[4]{null,null, true, true}, new object[4]{null,true,null,null}, new object[4]{null,true,null,true}, new object[4]{null,null,null,true}, new object[4]{null,true,true,null}, new object[4]{null,true,true,null}, new object[4]{null, true, true, null}, }; } else if (nameString == "T3Left") { roadGoInfo = null; roadGoInfo = new List() { new object[4]{null,null,true,true}, new object[4]{null, null, true, true}, new object[4]{null,null, true, true}, new object[4]{null,null,null,null}, new object[4]{null,null, null, null}, new object[4]{null,null,null,null}, new object[4]{true,null,null,true}, new object[4]{ true, null, null,true}, new object[4]{ true, null,null,true}, new object[4]{null,null, true, null}, new object[4]{true, null, true, null}, new object[4]{ true, null,null,null}, }; } else if (nameString == "T3Right") { roadGoInfo = null; roadGoInfo = new List() { new object[4]{null,true,true,null}, new object[4]{null, true, true, null}, new object[4]{null, true, true, null}, new object[4]{true,null,null,null}, new object[4]{ true, null, true, null}, new object[4]{null,null, true, null}, new object[4]{true,true,null,null}, new object[4]{ true, true, null,null}, new object[4]{ true, true, null,null}, new object[4]{null,null, null, null}, new object[4]{null, null, null, null}, new object[4]{null,null,null,null}, }; } else if (nameString == "T3Up") { roadGoInfo = null; roadGoInfo = new List() { new object[4]{null,null, null, true}, new object[4]{null, true, null, true}, new object[4]{null, true, null,null}, new object[4]{true,null,null,true}, new object[4]{ true, null, null, true}, new object[4]{ true, null,null,true}, new object[4]{null, null, null,null}, new object[4]{ null, null, null,null}, new object[4]{null,null,null,null}, new object[4]{true, true, null, null}, new object[4]{ true, true, null, null}, new object[4]{ true, true, null,null}, }; } else if (nameString == "T23Down") { roadGoInfo = null; roadGoInfo = new List() { new object[4]{null,null,null,null}, new object[4]{null,null,null,null}, new object[4]{null,null,null,null}, new object[4]{null,null,true,true}, new object[4]{null,null, true, true}, new object[4]{null,null,null,null}, new object[4]{null,true,null,null}, new object[4]{null, true, null,true}, new object[4]{null,null,null,true}, new object[4]{null,true,true,null}, new object[4]{null,true,true,null}, new object[4]{null,null,null,null}, }; } else if (nameString == "T23Left") { roadGoInfo = null; roadGoInfo = new List() { new object[4]{null,null,true,true}, new object[4]{null, null, true, true}, new object[4]{null,null,null,null}, new object[4]{null,null,null,null}, new object[4]{null,null, null, null}, new object[4]{null,null,null,null}, new object[4]{true,null,null,true}, new object[4]{ true, null, null,true}, new object[4]{null,null,null,null}, new object[4]{null,null, true, null}, new object[4]{true, null, true, null}, new object[4]{ true, null,null,null}, }; } else if (nameString == "T23Right") { roadGoInfo = null; roadGoInfo = new List() { new object[4]{null,true,true,null}, new object[4]{null, true, true, null}, new object[4]{null,null,null,null}, new object[4]{true,null,null,null}, new object[4]{ true, null, true, null}, new object[4]{null,null, true, null}, new object[4]{true,true,null,null}, new object[4]{ true, true, null,null}, new object[4]{null,null,null,null}, new object[4]{null,null, null, null}, new object[4]{null, null, null, null}, new object[4]{null,null,null,null}, }; } else if (nameString == "T23Up") { roadGoInfo = null; roadGoInfo = new List() { new object[4]{null,null, null, true}, new object[4]{null, true, null, true}, new object[4]{null, true, null,null}, new object[4]{true,null,null,true}, new object[4]{ true, null, null, true}, new object[4]{null,null,null,null}, new object[4]{null, null, null,null}, new object[4]{ null, null, null,null}, new object[4]{null,null,null,null}, new object[4]{true, true, null, null}, new object[4]{ true, true, null, null}, new object[4]{null,null,null,null}, }; } else if (nameString == "T32Down") { roadGoInfo = null; roadGoInfo = new List() { new object[4]{null,null,null,null}, new object[4]{null,null,null,null}, new object[4]{null,null,null,null}, new object[4]{null,null,true,true}, new object[4]{null,null, true, true}, new object[4]{null,null, true, true}, new object[4]{null,true,null,null}, new object[4]{null,null,null,true}, new object[4]{null,null,null,null}, new object[4]{null,true,true,null}, new object[4]{null,true,true,null}, new object[4]{null, true, true, null}, }; } else if (nameString == "T32Left") { roadGoInfo = null; roadGoInfo = new List() { new object[4]{null,null,true,true}, new object[4]{null, null, true, true}, new object[4]{null,null, true, true}, new object[4]{null,null,null,null}, new object[4]{null,null, null, null}, new object[4]{null,null,null,null}, new object[4]{true,null,null,true}, new object[4]{ true, null, null,true}, new object[4]{ true, null,null,true}, new object[4]{null,null, true, null}, new object[4]{true, null, null, null}, new object[4]{ null, null,null,null}, }; } else if (nameString == "T32Right") { roadGoInfo = null; roadGoInfo = new List() { new object[4]{null,true,true,null}, new object[4]{null, true, true, null}, new object[4]{null, true, true, null}, new object[4]{true,null,null,null}, new object[4]{ null, null, true, null}, new object[4]{null,null, null, null}, new object[4]{true,true,null,null}, new object[4]{ true, true, null,null}, new object[4]{ true, true, null,null}, new object[4]{null,null, null, null}, new object[4]{null, null, null, null}, new object[4]{null,null,null,null}, }; } else if (nameString == "T32Up") { roadGoInfo = null; roadGoInfo = new List() { new object[4]{null,null, null, true}, new object[4]{null, true, null, null}, new object[4]{null, null, null,null}, new object[4]{true,null,null,true}, new object[4]{ true, null, null, true}, new object[4]{ true, null,null,true}, new object[4]{null, null, null,null}, new object[4]{ null, null, null,null}, new object[4]{null,null,null,null}, new object[4]{true, true, null, null}, new object[4]{ true, true, null, null}, new object[4]{ true, true, null,null}, }; } } } }