BallBrowserSpawner.cs 1023 B

123456789101112131415161718192021222324252627282930313233343536
  1. using UnityEngine;
  2. namespace ZenFulcrum.EmbeddedBrowser {
  3. /**
  4. * Attach this to a browser.
  5. * When it starts up, it will register itself as the NewWindowHandler on the browser.
  6. *
  7. * When a new window is opened, it will create a ball to show that new window's contents, and drop it
  8. * from {spawnPosition}.
  9. */
  10. [RequireComponent(typeof(Browser))]
  11. public class BallBrowserSpawner : MonoBehaviour, INewWindowHandler {
  12. public Transform spawnPosition;
  13. public float size;
  14. public void Start() {
  15. GetComponent<Browser>().SetNewWindowHandler(Browser.NewWindowAction.NewBrowser, this);
  16. }
  17. public Browser CreateBrowser(Browser parent) {
  18. var ball = GameObject.CreatePrimitive(PrimitiveType.Sphere);
  19. ball.AddComponent<Rigidbody>();
  20. ball.transform.localScale = new Vector3(size, size, size);
  21. ball.transform.position = spawnPosition.position + Vector3.one * Random.value * .01f;
  22. var browser = ball.AddComponent<Browser>();
  23. browser.UIHandler = null;
  24. browser.Resize(110, 110);
  25. return browser;
  26. }
  27. }
  28. }