You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

PyramidArea.cs 1.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using MLAgents;
  5. public class PyramidArea : Area
  6. {
  7. public GameObject pyramid;
  8. public GameObject stonePyramid;
  9. public GameObject[] spawnAreas;
  10. public int numPyra;
  11. public float range;
  12. public void CreatePyramid(int numObjects, int spawnAreaIndex)
  13. {
  14. CreateObject(numObjects, pyramid, spawnAreaIndex);
  15. }
  16. public void CreateStonePyramid(int numObjects, int spawnAreaIndex)
  17. {
  18. CreateObject(numObjects, stonePyramid, spawnAreaIndex);
  19. }
  20. private void CreateObject(int numObjects, GameObject desiredObject, int spawnAreaIndex)
  21. {
  22. for (var i = 0; i < numObjects; i++)
  23. {
  24. var newObject = Instantiate(desiredObject, Vector3.zero,
  25. Quaternion.Euler(0f, 0f, 0f), transform);
  26. PlaceObject(newObject, spawnAreaIndex);
  27. }
  28. }
  29. public void PlaceObject(GameObject objectToPlace, int spawnAreaIndex)
  30. {
  31. var spawnTransform = spawnAreas[spawnAreaIndex].transform;
  32. var xRange = spawnTransform.localScale.x / 2.1f;
  33. var zRange = spawnTransform.localScale.z / 2.1f;
  34. objectToPlace.transform.position = new Vector3(Random.Range(-xRange, xRange), 2f, Random.Range(-zRange, zRange))
  35. + spawnTransform.position;
  36. }
  37. public void CleanPyramidArea()
  38. {
  39. foreach (Transform child in transform) if (child.CompareTag("pyramid"))
  40. {
  41. Destroy(child.gameObject);
  42. }
  43. }
  44. public override void ResetArea()
  45. {
  46. }
  47. }