繁体   English   中英

如何将图像从一个场景转移到另一个场景

[英]How to Transfer an image from one scene to another

我正在尝试截取一个对象的屏幕截图,然后在统一的订单(另一个场景)中将其显示为预览。

我已使用 Native Gallery 资产将屏幕截图保存到画廊。 但我不确定如何在下一个场景中显示图像。

有没有办法做到这一点? 或者也许将图像发送到下一个场景?

更新:

我尝试将 DontDestroyOnLoad 脚本添加到与截取屏幕截图相关的游戏对象中,但屏幕截图并未显示在第二个场景中。 这是我的代码

void Start()
{
    DontDestroyOnLoad(transform.gameObject);

}

我从场景更改脚本中调用了以下函数

void Start()
{
    GameObject thePlayer = GameObject.Find("screenshotGameObject");
    TakeScreenshot playerScript = thePlayer.GetComponent<TakeScreenshot>();
    Screenshot = playerScript.ss;
}

我用来截屏的脚本

public class TakeScreenshot : MonoBehaviour {

    [SerializeField]
    public Text debugText;
    public GameObject ScreenshotImage;


    //protected const string MEDIA_STORE_IMAGE_MEDIA = "android.provider.MediaStore$Images$Media";
    //protected static AndroidJavaObject m_Activity;

    public void TakeAShot()
    {
        StartCoroutine(TakeScreenshotAndSave());
    }


    IEnumerator TakeScreenshotAndSave()
    {
        yield return new WaitForEndOfFrame();

        Texture2D ss = new Texture2D(Screen.width, Screen.height, TextureFormat.RGB24, false);
        ss.ReadPixels(new Rect(0, 0, Screen.width, Screen.height), 0, 0);
        ss.Apply();
        NativeGallery.Permission permission = NativeGallery.CheckPermission();
        NativeGallery.RequestPermission();
        if (permission == NativeGallery.Permission.Denied)
        {
            NativeGallery.OpenSettings();
        }

        else if(permission == NativeGallery.Permission.Granted)
        {
            // Save the screenshot to Gallery/Photos
            Debug.Log("Permission result: " + NativeGallery.SaveImageToGallery(ss, "Boflora", "Image.png"));

            //debugText.text = "Permission result: " + NativeGallery.SaveImageToGallery(ss, "GalleryTest", "Image.png");
            // To avoid memory leaks
            //Destroy(ss);

        }

        StartCoroutine(ShowAndHide(1.0f)); // 1 second

    }
    IEnumerator ShowAndHide(float delay)
    {
        ScreenshotImage.SetActive(true);
        yield return new WaitForSeconds(delay);
        ScreenshotImage.SetActive(false);
    }
}

尝试将图像保存在脚本中并将该脚本放在游戏对象上并使用 dont destroy on load 功能。 你可以在下一个场景中展示你的形象

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM