void SpawnSpikes() { DestroySpikes(); Debug.Log("Spawning Spikes"); int numSpikesToSpawn = Random.Range(8, 11); float minZ = DoorsNext.transform.position.z - Radius * 0.15f; float maxZ = DoorsNext.transform.position.z - Radius * 0.6f; for (int s = 0; s < numSpikesToSpawn; ++s) { float zPos = Random.Range(minZ, maxZ + 1); float xPos = Random.Range(-4, 5); while (!SpawnPositionValid(new Vector3(xPos, -1, zPos))) { zPos = Random.Range(minZ, maxZ + 1); xPos = Random.Range(-4, 5); } GameObject spike = Instantiate(Resources.Load(Random.Range(0, 2) == 1 ? "SpikeTree" : "SpikeTree2", typeof(GameObject))) as GameObject; Spikes.Add(spike); Vector3 spikePos = spike.transform.position; Vector3 loweredPos = spike.GetComponent <SpikeController>().LoweredPosition; spikePos.Set(xPos, loweredPos.y, zPos); spike.transform.position = spikePos; SpikeController spikeController = spike.GetComponent <SpikeController>(); if (spikeController != null) { spikeController.State = SpikeController.SpikeState.Lowered; spikeController.RiseFallFrequency = Random.Range(0.5f, 1.5f); } } }
void Awake() { spikes = GameObject.Find("SpikeController").GetComponent <SpikeController> (); checkPoints = GameObject.Find("CheckpointController").GetComponent <CheckpointController> (); shatters = GameObject.Find("ShatterBoxController").GetComponent <ShatterBoxController> (); slopes = GameObject.Find("SlopeController").GetComponent <SlopeController> (); bool stop = false; }
void Awake() { spikes = GameObject.Find ("SpikeController").GetComponent<SpikeController> (); checkPoints = GameObject.Find ("CheckpointController").GetComponent<CheckpointController> (); shatters = GameObject.Find ("ShatterBoxController").GetComponent<ShatterBoxController> (); slopes = GameObject.Find ("SlopeController").GetComponent<SlopeController> (); bool stop = false; }
private void OnTriggerEnter(Collider other) { SpikeController spike = other.gameObject.GetComponent <SpikeController>(); if (spike != null) { Debug.Log("Spiked!"); DiedTrigger diedSound = GetComponent <DiedTrigger>(); if (diedSound != null) { diedSound.TriggerSound(); } if (OnPlayerDied != null) { OnPlayerDied(); } } }
public void LoadLevelPieces(List <int> levelPieceIndices, bool loadRecycledPieces) { for (int i = 0; i < levelPieceIndices.Count; i++) { int pieceIndex = levelPieceIndices[i]; LevelPieceModel levelPieceModel = levelPieceModels[pieceIndex]; levelPieceModel.isEnabled = true; LevelPieceController levelPiece = levelPiecePrefab.Spawn(transform, Vector3.zero, Quaternion.identity); levelPiece.Reset(); levelPiece.levelPieceModel = levelPieceModel; levelPiece.topBorder.transform.localPosition = new Vector3(0, levelPieceModel.topBorderY, 0); levelPiece.bottomBorder.transform.localPosition = new Vector3(0, levelPieceModel.bottomBorderY, 0); Transform levelPieceTransform = levelPiece.gameObject.transform; if ((loadRecycledPieces || !isInitialized) && i == 0) { bottomPieceTop.transform.position = levelPiece.topBorder.transform.position; } if (loadRecycledPieces) { float piecePos = recycledLevelPieces[recycledLevelPieces.Count - 1].Value; recycledLevelPieces.RemoveAt(recycledLevelPieces.Count - 1); levelPieceTransform.Translate(new Vector3(0, piecePos, 0)); loadedLevelPieces.Insert(0, levelPiece); bottomPieceTop.transform.position = levelPiece.topBorder.transform.position; } else { if (loadedLevelPieces.Count != 0) { LevelPieceController topPiece = loadedLevelPieces[loadedLevelPieces.Count - 1]; levelPieceTransform.Translate(new Vector3(0, topPiece.topBorder.transform.position.y + 2, 0)); } else { levelPieceTransform.Translate(new Vector3(0, 0, 0)); } if (i == levelPieceIndices.Count - 1) { topPieceBottom.transform.position = levelPiece.bottomBorder.transform.position; } loadedLevelPieces.Add(levelPiece); } // create cicles foreach (CircleModel circle in levelPieceModel.circles) { CircleController circleInstance = null; switch (circle.circleType) { case CircleModel.CircleType.CIRCLE_1: { circleInstance = circle1Prefab.Spawn(levelPieceTransform, circle.position, Quaternion.identity); break; } case CircleModel.CircleType.CIRCLE_2: { circleInstance = circle2Prefab.Spawn(levelPieceTransform, circle.position, Quaternion.identity); break; } case CircleModel.CircleType.CIRCLE_3: { circleInstance = circle3Prefab.Spawn(levelPieceTransform, circle.position, Quaternion.identity); break; } case CircleModel.CircleType.CIRCLE_4: { circleInstance = circle4Prefab.Spawn(levelPieceTransform, circle.position, Quaternion.identity); break; } } circleInstance.Reset(); levelPiece.circles.Add(circleInstance); } // create spikes foreach (SpikeModel spike in levelPieceModel.spikes) { SpikeController spikeInstance = spikePrefab.Spawn(levelPieceTransform, spike.position, Quaternion.identity); spikeInstance.transform.localScale = new Vector3(spike.scale, spike.scale, 1); spikeInstance.FixShadowPosition(); levelPiece.spikes.Add(spikeInstance); } } }