Ваше замечание было бы очень грустным, если бы было истинным. Формат РендерТекстуры по-умолчанию -
ARGB32, 8 бит на альфаканал.
Смотрите, я для эксперимента создал такую сцену:
2017-01-17 00_54_29-Unity Personal (64bit) - Untitled - TestProj - PC, Mac & Linux Standalone_ _DX11.png
CubeAtBackground и Canvas находятся на слоях, которые рендерятся "Main Camera"
SphereOnTexture и ParticleSystemOnTexture находятся на отдельном слое, который рендерит только "Texture Camera"
"Texture Camera" я присвоил такой короткий скрипт, а в качестве цели указал RawImage. То есть теперь "Texture Camera" рендерит в RenderTexture, которая присвоена RawImage, которая рендерит MainCamera:
Используется csharp
using UnityEngine;
using UnityEngine.UI;
public class CameraToRawImage : MonoBehaviour {
public RawImage targetImage;
public void Start ()
{
var texture = new RenderTexture(Screen.width, Screen.height, 24);
GetComponent<Camera>().targetTexture = texture;
targetImage.texture = texture;
}
}
Теперь самое интересное. Если в редакторе TextureCamera поставить ClearFlags=SolidColor и Background=Black, то получим ожидаемый результат - у текстуры черный фон, она на весь экран, Сфера и Частички отрендерились корректно, текст отрендерился поверх текстуры:
ResultSolid.png
Если же TextureCamera в качестве Background использовать прозрачный цвет (а=0), то мячик рендерится корректно, а частички рендерятся только поверх мячика, но не там, где у текстуры a=0
ResultTransp.png
То есть текстура рендерится корректно, альфаканал у нее есть, но шейдер частичек написан так, что поверх прозрачных областей они не рендерятся.
У вас нет доступа для просмотра вложений в этом сообщении.