ScriptingExample.cs 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. using UnityEngine;
  2. namespace Cinemachine.Examples
  3. {
  4. public class ScriptingExample : MonoBehaviour
  5. {
  6. CinemachineVirtualCamera vcam;
  7. CinemachineFreeLook freelook;
  8. void Start()
  9. {
  10. // Create a Cinemachine brain on the main camera
  11. var brain = GameObject.Find("Main Camera").AddComponent<CinemachineBrain>();
  12. brain.m_ShowDebugText = true;
  13. brain.m_DefaultBlend.m_Time = 1;
  14. // Create a virtual camera that looks at object "Cube", and set some settings
  15. vcam = new GameObject("VirtualCamera").AddComponent<CinemachineVirtualCamera>();
  16. vcam.m_LookAt = GameObject.Find("Cube").transform;
  17. vcam.m_Priority = 10;
  18. vcam.gameObject.transform.position = new Vector3(0, 1, 0);
  19. // Install a composer. You can install whatever CinemachineComponents you need,
  20. // including your own custom-authored Cinemachine components.
  21. var composer = vcam.AddCinemachineComponent<CinemachineComposer>();
  22. composer.m_ScreenX = 0.30f;
  23. composer.m_ScreenY = 0.35f;
  24. // Create a FreeLook vcam on object "Cylinder"
  25. freelook = new GameObject("FreeLook").AddComponent<CinemachineFreeLook>();
  26. freelook.m_LookAt = GameObject.Find("Cylinder/Sphere").transform;
  27. freelook.m_Follow = GameObject.Find("Cylinder").transform;
  28. freelook.m_Priority = 11;
  29. // You can access the individual rigs in the freeLook if you want.
  30. // FreeLook rigs come with Composers pre-installed.
  31. // Note: Body MUST be Orbital Transposer. Don't change it.
  32. CinemachineVirtualCamera topRig = freelook.GetRig(0);
  33. CinemachineVirtualCamera middleRig = freelook.GetRig(1);
  34. CinemachineVirtualCamera bottomRig = freelook.GetRig(2);
  35. topRig.GetCinemachineComponent<CinemachineComposer>().m_ScreenY = 0.35f;
  36. middleRig.GetCinemachineComponent<CinemachineComposer>().m_ScreenY = 0.25f;
  37. bottomRig.GetCinemachineComponent<CinemachineComposer>().m_ScreenY = 0.15f;
  38. }
  39. float lastSwapTime = 0;
  40. void Update()
  41. {
  42. // Switch cameras from time to time to show blending
  43. if (Time.realtimeSinceStartup - lastSwapTime > 5)
  44. {
  45. freelook.enabled = !freelook.enabled;
  46. lastSwapTime = Time.realtimeSinceStartup;
  47. }
  48. }
  49. }
  50. }