public override void SpawnMovableObject() { ObstacleMask wallMask = RandomLaneMaskGenerator.GenerateObstacleMask(1); Transform spawnpoint = wallSpawnPosition[Random.Range(0, wallSpawnPosition.Length)]; ((CollectibleObjectPooler)pooler).SpawnCollectible(wallMask, spawnpoint.position, Quaternion.identity); }
public static ObstacleMask CreateInitializedObstaclemask(byte l, byte c, byte r) { ObstacleMask mask = new ObstacleMask(); mask.leftLaneValue = l; mask.centerLaneValue = c; mask.rightLaneValue = r; return(mask); }
public GameObject SpawnCollectible(ObstacleMask mask, Vector3 position, Quaternion rotation) { //1-Get Collectible from pool GameObject collectible = poolDictionary[Taglist.CollectibleTag].Dequeue(); collectible.transform.position = position; collectible.transform.rotation = rotation; collectible.SetActive(true); poolDictionary[Taglist.CollectibleTag].Enqueue(collectible); //2-Initialize obstacle collectible.GetComponent <MovableObject>().InitMovable(mask); return(collectible); }
/// <summary> /// Builds a wall from given mask in given slot. /// Lanes always go from Left to Right /// </summary> /// <param name="wallSlot"></param> /// <param name="wallMask"></param> public string[] BuildObstacle(int gateCount = 1) { ObstacleMask wallMask = RandomLaneMaskGenerator.GenerateObstacleMask(gateCount); //Idea: Given an obstacle mask, builds a string array with the tags of the obstacle entities (walls and gate) var obstacleMask = wallMask.ToArray(); string[] obstacleTags = new string[3]; for (int i = 0; i < obstacleMask.Length; i++) { if (i == 0) { if (obstacleMask[i] == 0) //Wall { obstacleTags[i] = /*Taglist.WallPrefix +*/ Taglist.WallLeftTag; } else //Gate { obstacleTags[i] = Taglist.GatePrefix + GetRandomGate() + Taglist.LeftSufix; } } else if (i == 1) { if (obstacleMask[i] == 0) //Wall { obstacleTags[i] = Taglist.WallCenterTag; } else //Gate { obstacleTags[i] = Taglist.GatePrefix + GetRandomGate() + Taglist.CenterSufix; } } else { if (obstacleMask[i] == 0) //Wall { obstacleTags[i] = Taglist.WallRightTag; } else //Gate { obstacleTags[i] = Taglist.GatePrefix + GetRandomGate() + Taglist.RightSufix; } } } return(obstacleTags); }
public override void InitMovable(ObstacleMask mask) { //Place collectible correctly based on given mask int[] maskArray = mask.ToArray(); int laneIndex; for (laneIndex = 0; laneIndex < 3; laneIndex++) { if (maskArray[laneIndex] == 1) { break; } } transform.localPosition += (laneIndex - 1) * GridConfig.LaneWidth * Vector3.right; base.InitMovable(); }
public virtual void InitMovable(ObstacleMask mask) { }