我的实际代码:
function Update() {
if(Input.GetMouseButtonDown(0)) {
Debug.Log("foto");
Application.CaptureScreenshot(Application.dataPath + "Screenshot.png");
}
}
我需要为每一张照片这个函数的输出路径。
谢谢!
我的实际代码:
function Update() {
if(Input.GetMouseButtonDown(0)) {
Debug.Log("foto");
Application.CaptureScreenshot(Application.dataPath + "Screenshot.png");
}
}
我需要为每一张照片这个函数的输出路径。
谢谢!
您可将文件保存到Application.persistentDataPath 。 统一的应用程序没有写权限Application.dataPath
Android或iOS设备。
另外,不要忘记加入的路径和正斜杠的文件夹名称:
Application.CaptureScreenshot(Application.persistentDataPath + "/Screenshot.png");
至少有3种方式来保存某种截图与Unity3D: Application.CaptureScreenshot
, Texture2D.ReadPixels
和RenderTexture
。
我只知道第一个: Application.CaptureScreenshot
。 这是肯定的最简单的一种。 它并不需要的路径,它会保存到Application.persistentDataPath
或Application.dataPath + "/../"
,根据您的平台。 遗憾的是目前尚无肯定知道或通过代码的唯一方式 - 它只是打破了这种方式。 此外,它是缓慢的,并可能需要几秒钟来处理。 它运行作为一个独立的过程,所以你应该有一个更新或协程等待文件使用它的任何东西之前创建。
如果你想选择该文件将其保存,你需要做的是这样的:
bool creatingFile = false;
string fileName = "Screenshot.png"
function Update() {
if(Input.GetMouseButtonDown(0)) {
Application.CaptureScreenshot(fileName);
creatingFile = true;
}
if (creatingFile) {
string origin = System.IO.Path.Combine(Application.persistentDataPath, fileName);
string destination = "/sdcard/ScreenCapture/" + fileName; // could be anything
if (System.IO.File.Exists(origin)) {
System.IO.File.Move(origin, destination);
creatingFile = false;
}
}
}
static function CaptureScreen(){
var filename;
var name :String = GuiScript.stringToEdit;
var allowedScreenshots:int=1000;
for(var i = 0; i <= allowedScreenshots; i++)
{
if(Application.platform == RuntimePlatform.Android){
filename = "/mnt/sdcard/Android/data/com.xxxx.Test01/files/" + name + i + ".png";
} else {
filename = name + i + ".png";
}
if(!System.IO.File.Exists(filename))
{
Application.CaptureScreenshot(name + i + ".png" );
print("ScreenDUMP made!");
print(i);
print(name);
return;
}
else
{
print("filename already exists");
print(i);
}
}
}
Application.persistentDataPath
统一始终对文件夹点在IOS
和/mnt/android/data/application-bundle-identifier/
对android
。
如果你不给的路径, Application.CaptureScreenshot
放,而不是只给出了截图,它会自动获得保存的文档文件夹的名称IOS
没有测试的android
。
希望这可以帮助。