Advertisement
Guest User

LOD system

a guest
Mar 2nd, 2015
273
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.93 KB | None | 0 0
  1. //LOD system for unity free by James Arndt
  2. #pragma strict
  3.  
  4. public var distanceRanges : float [];
  5. public var lodModels : GameObject [];
  6.  
  7. private var current = -2;
  8.  
  9. public var playerCamera : Camera;
  10.  
  11.  
  12. function Start ()
  13. {
  14.  
  15. for (var i = 0; i < lodModels.Length; i ++)
  16. {
  17. lodModels[1].SetActiveRecursively(false);
  18. }
  19.  
  20. }
  21.  
  22. function Update ()
  23. {
  24. var d = Vector3.Distance(playerCamera.transform.position, transform.position);
  25. var level = -1;
  26.  
  27. for (var i = 0; i < distanceRanges.Length; i++)
  28. {
  29. if (d < distanceRanges[i])
  30. {
  31. level = i;
  32. i = distanceRanges.Length;
  33. }
  34. }
  35. if (level == -1)
  36. {
  37. level = distanceRanges.Length;
  38. }
  39. if (current != level)
  40. {
  41. ChangeLOD(level);
  42. }
  43. }
  44.  
  45. function ChangeLOD(level)
  46. {
  47. lodModels[level].SetActiveRecursively(true);
  48.  
  49. if (current >= 0)
  50. {
  51. lodModels[current].SetActiveRecursively(false);
  52. }
  53.  
  54. current = level;
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement