Unity2021在URP模式下摄像机重叠背景设置问题

        Unity2021在URP模式下,假设场景中有2个摄像机A和B,如果希望B摄像机渲染的内容覆盖到A摄像机上面,那么摄像机B的RenderType设置为Overlay,在A摄像机的Stack中添加B摄像机就可以了。

        渲染内容覆盖的顺序取决于添加的顺序,可以手动拖拽来改变顺序。

        使用代码控制的方法参考如下:

using UnityEngine;
using UnityEngine.Rendering.Universal;

public class NewBehaviourScript : MonoBehaviour
{
	[SerializeField]
	Camera camBase;
	[SerializeField]
	Camera camOverlay01;
	[SerializeField]
	Camera camOverlay02;

	UniversalAdditionalCameraData camData;
	void Start()
	{
		camData = camBase.GetUniversalAdditionalCameraData();
	}

	void Update()
	{
		if (Input.GetMouseButtonDown(0))
		{
			camData.cameraStack.Add(camOverlay01);
		}

		if (Input.GetMouseButtonDown(2))
		{
			camData.cameraStack.Add(camOverlay02);
		}

		if (Input.GetMouseButtonDown(1))
		{
			camData.cameraStack.Clear();
		}
	}
}

        这里cameraStack就是个List。

        需要补充说明一下的是,有一次手动选择摄像机的RenderType时莫名其妙的发现,摄像机的RenderType中的Overlay选项不可用,当时都觉得Unity是不是bug了,后来了解到是因为摄像机使用了延迟渲染路径,只要摄像机选择向前渲染路径就可以选择了。

猜你喜欢

转载自blog.csdn.net/ttod/article/details/121626137
今日推荐