Orbs.cs 962 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. using UnityEngine;
  2. public class Orbs : MonoBehaviour
  3. {
  4. public float orbPosX;
  5. public float orbPosY;
  6. public float orbPosZ;
  7. public float maxCheckDistance = 100f;
  8. public LayerMask groundLayer;
  9. public float groundOffset = 1f;
  10. public bool isCollected;
  11. // Start is called once before the first execution of Update after the MonoBehaviour is created
  12. void Start()
  13. {
  14. groundLayer = LayerMask.GetMask("Ground");
  15. SnapToGround();
  16. orbPosX = transform.position.x;
  17. orbPosY = transform.position.y;
  18. orbPosZ = transform.position.z;
  19. }
  20. // Update is called once per frame
  21. void SnapToGround()
  22. {
  23. RaycastHit hit;
  24. if (Physics.Raycast(transform.position, Vector3.down, out hit, maxCheckDistance, groundLayer))
  25. {
  26. Vector3 pos = transform.position;
  27. pos.y = hit.point.y + groundOffset;
  28. transform.position = pos;
  29. }
  30. }
  31. }