源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

71 lines
1.8 KiB

  1. using UnityEngine;
  2. using System.Collections;
  3. /// <summary>
  4. /// 渲染需要广泛那部分的图
  5. /// </summary>
  6. public class RenderBloomTexture : MonoBehaviour
  7. {
  8. /// <summary>
  9. /// 主摄像机
  10. /// </summary>
  11. public Camera m_FollowCamera;
  12. /// <summary>
  13. /// 渲染需要泛光的摄像机
  14. /// </summary>
  15. private Camera m_Camera;
  16. /// <summary>
  17. /// 替换shader
  18. /// </summary>
  19. private Shader replaceShader = null;
  20. [SerializeField]
  21. internal string render_tag = "RenderType";
  22. void Start()
  23. {
  24. m_Camera = GetComponent<Camera>();
  25. //摄像机背景要设置为黑色
  26. // m_Camera.enabled = false;
  27. m_Camera.clearFlags = CameraClearFlags.SolidColor;
  28. m_Camera.backgroundColor = Color.black;
  29. UpdateCamera();
  30. UpdateCameraSetting();
  31. }
  32. void LateUpdate()
  33. {
  34. // UpdateCamera();
  35. //调用渲染
  36. if (replaceShader != null)
  37. m_Camera.RenderWithShader(replaceShader, render_tag);
  38. else
  39. Debug.Log("Error of replace shader");
  40. }
  41. void UpdateCamera()
  42. {
  43. transform.position = m_FollowCamera.transform.position;
  44. transform.rotation = m_FollowCamera.transform.rotation;
  45. }
  46. void UpdateCameraSetting()
  47. {
  48. m_Camera.orthographic = m_FollowCamera.orthographic;
  49. m_Camera.orthographicSize = m_FollowCamera.orthographicSize;
  50. m_Camera.nearClipPlane = m_FollowCamera.nearClipPlane;
  51. m_Camera.farClipPlane = m_FollowCamera.farClipPlane;
  52. m_Camera.fieldOfView = m_FollowCamera.fieldOfView;
  53. }
  54. public void ChangeRenderTag(string tag)
  55. {
  56. render_tag = tag;
  57. }
  58. public void SetRenderShader(Shader shader)
  59. {
  60. replaceShader = shader;
  61. }
  62. }