Guest User

Untitled

a guest
Jan 19th, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.46 KB | None | 0 0
  1. using UnityEngine;
  2.  
  3. [RequireComponent(typeof(Camera))]
  4. public class Attractor : MonoBehaviour
  5. {
  6. void Start()
  7. {
  8. if(generateFromArray)
  9. {
  10. int colorLen = colors.Length;
  11. float toStop = 1.0f / colorLen;
  12. GradientColorKey[] colorKeys = new GradientColorKey[colorLen];
  13. for(int i = 0; i < colorLen; ++i)
  14. {
  15. float stop = (i + 1) * toStop;
  16. colorKeys[i] = new GradientColorKey(colors[i], stop);
  17. }
  18. gradient = new Gradient();
  19. gradient.SetKeys(colorKeys, alphaKeys);
  20. gradient.mode = gradientMode;
  21. }
  22.  
  23. cam = GetComponent<Camera>();
  24. Mesh mesh = P5.Cube();
  25. movers = new Rigidbody[moverCount];
  26. for(int i = 0; i < moverCount; ++i)
  27. {
  28. string name = string.Format("Mover {0:D3}", i);
  29. GameObject mover = new GameObject(name);
  30. Rigidbody body= mover.AddComponent<Rigidbody>();
  31. body.useGravity = false;
  32. float m = Random.Range(minMass, maxMass);
  33. body.mass = m;
  34. movers[i] = body;
  35.  
  36. Transform tr = mover.transform;
  37. float s = P5.Map(m, minMass, maxMass, maxScale, minScale);
  38. tr.localScale = new Vector3(s, s, s);
  39. tr.localPosition = initialSpread * Random.insideUnitSphere;
  40. MeshFilter mf = mover.AddComponent<MeshFilter>();
  41. mf.sharedMesh = mesh;
  42. Material material = new Material(sourceMaterial);
  43. material.color = gradient.Evaluate(P5.Map(m, minMass, maxMass));
  44. MeshRenderer mr = mover.AddComponent<MeshRenderer>();
  45. mr.sharedMaterial = material;
  46.  
  47. if(addColliders)
  48. {
  49. mover.AddComponent<BoxCollider>();
  50. }
  51. }
  52. }
  53. }
Add Comment
Please, Sign In to add comment