Unity создает снимок экрана с прозрачным фоном, фоновое изображение снимка экрана прозрачно, а 3D-модель нельзя замаскировать при прокрутке UGUI.

Перепечатка  [Unity3D] Камера Unity3D с прозрачными скриншотами - Jingru ♂ fish - Blog Garden

using System;
using UnityEngine;
using System.IO;

public class CropPicture : MonoBehaviour
{
    public Camera cropCamera; //待截图的目标摄像机
    RenderTexture renderTexture;
    Texture2D texture2D;

    void Start()
    {
        renderTexture = new RenderTexture(800, 600, 32);
        texture2D = new Texture2D(800, 600, TextureFormat.ARGB32, false);
        cropCamera.targetTexture = renderTexture;
    }

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            RenderTexture.active = renderTexture;
            texture2D.ReadPixels(new Rect(0, 0, renderTexture.width, renderTexture.height), 0, 0);
            texture2D.Apply();
            RenderTexture.active = null;
            
            byte[] bytes = texture2D.EncodeToPNG();
            File.WriteAllBytes(Application.dataPath + "//pic//" + (DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0)).TotalMilliseconds + ".png", bytes);
        }
    }
}

Затем перетащите этот скрипт на основную камеру

Создайте новую камеру, которая должна делать скриншоты, зачем вам создавать новую? Потому что у него не может быть скайбокса.

Затем перетащите этот объект камеры в переменную CropCamera в скрипте CropPicture основной камеры.

Затем установите свойство сплошной цвет камеры, которая должна сделать снимок экрана, и установите прозрачный фон.

Это можно использовать для создания снимка экрана 3D-модели и отображения его в пользовательском интерфейсе, например, в списке рюкзака персонажа.Необходимо отображать изображение, но не обязательно отображать модель.Отображение модели приведет к тому, что прокрутка UGUI не будет закрыта маской, и модель не будет отображаться при скольжении.Это было отображено в пользовательском интерфейсе и может быть решено только путем написания шейдера.Шейдер действительно не понимает. Так динамически сгенерировать скриншот модели в рюкзаке, отобразить ее в списке, нажать на элемент списка, и справа отобразится отдельная модель

Запиши это!

Supongo que te gusta

Origin blog.csdn.net/github_38633141/article/details/123802781
Recomendado
Clasificación