unity实现按住鼠标选取区域截图
本文实例为大家分享了unity按住鼠标选取区域截图的具体代码,供大家参考,具体内容如下
privateintcapBeginX;
privateintcapBeginY;
privateintcapFinishX;
privateintcapFinishY;
publicImageshowImg;
//Usethisforinitialization
voidStart(){
}
//Updateiscalledonceperframe
voidUpdate(){
if(Input.GetMouseButtonDown(0)){
Vector3mousePos=Input.mousePosition;
Vector2beginPos=newVector2(mousePos.x,mousePos.y);
capBeginX=(int)mousePos.x;
capBeginY=(int)mousePos.y;
}
if(Input.GetMouseButtonUp(0)){
Vector3mousePos=Input.mousePosition;
Vector2finishPos=newVector2(mousePos.x,mousePos.y);
capFinishX=(int)mousePos.x;
capFinishY=(int)mousePos.y;
//重新计算截取的位置
intcapLeftX=(capBeginX
小编为大家分享一段Unity实现截屏功能的代码,供大家参考:
publicclassScreenShot:MonoBehaviour
{
voidOnScreenShotClick()
{
//得到当前系统时间
System.DateTimenow=System.DateTime.Now;
stringtimes=now.ToString();
//去掉前后空格
times=times.Trim();
//将斜杠替换成横杠
times=times.Replace("/","-");
stringfileName="ARScreenShot"+times+".png";
//判断该平台是否为安卓平台
if(Application.platform==RuntimePlatform.Android)
{
//参数依次为屏幕宽度屏幕高度纹理格式是否使用映射
Texture2Dtexture=newTexture2D(Screen.width,Screen.height,TextureFormat.RGB24,false);
//读取贴图
texture.ReadPixels(newRect(0,0,Screen.width,Screen.height),0,0);
//应用截屏
texture.Apply();
//将对象序列化
byte[]bytes=texture.EncodeToPNG();
//设定存储到的手机文件夹路径
stringdestination="/sdcard/DCIM/Screenshots";
//如果不存在该文件夹
if(!Directory.Exists(destination))
{
//创建该文件夹
Directory.CreateDirectory(destination);
}
stringpathSave=destination+"/"+fileName;
File.WriteAllBytes(pathSave,bytes);
}
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。