[英]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.