2021
05-02
05-02
Unity游戏之存储数据
在许多游戏中当我们因为一些问题无法接着进行游玩,我们都会选择保存,以便后面有空时,接着游玩。接下来,我们会学习一些Unity有关的存储方法。一、Unity-PlayerPrefs(数据持久化)这是Unity自带的用于本地持久化保存与读取的类,采用的是键值对的方式来进行存储,一般通过键名来进行获取。PlayerPrefs有Int,float,string类型。保存数据PlayerPrefs.SetString(“Color”,color);PlayerPrefs.SetInt(“Number”,number);PlayerPre...
继续阅读 >
unity通过GetVector,GetColor,GetFloat等获取。SetVector,SetColor,SetFloat等设置。这里我要修改Transparency_Value的值使用setfloat修改值coderenderer.material.SetFloat("_TransVal",TranValue);这是shader里面的一句_TransVal("Transparency_Value",Range(0,1))=0.5coderenderer.material.shader=Shader.Find("Custom/SimpleAlpha");代码控制切换shader。补充:Unity利用编辑器扩展批量修改物体材质的Shader并启...
创建一个脚本,输入下面的代码。脚本不需要添加到任何物体上,globle变量可以跨场景全局调用。usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;publicclassGloble{publicstaticintgloble=1;}和以前的许多语言不同,C#没有全局变量或全局函数。C#的所有字段和方法都在类的上下文中。在C#中,与全局字段或函数等价的是静态字段或方法。“全局变量/函数”和“C#静态字段/方法”在功能上没有...
创建两个场景同时赋值StaticVarious脚本然后按键好,H,J进行不断切换场景,会发现unity控制台输出数字不断增加,然后把静态去掉,这样结果都是10。usingUnityEngine;usingSystem.Collections;usingUnityEngine.SceneManagement;publicclassStaticVarious:MonoBehaviour{staticintvalue=10;voidStart(){Debug.Log(value++);}publicvoidUpdate(){if(Input.GetKeyDown(Ke...
首先!首先!首先!首先,我们由于历史问题,项目用的UI编辑器不是大众使用的GUI或者NGUI,而是使用不知道算不算小众的FairyGUI,这个UI系统使用挺方便的,也提供了很多UI编码的案例,至少从直接使用来说方便了不少。但是!但是!但是!可能用到这个UI编辑器的不是那么多,项目上遇到的问题在网上百度出来的结果很少,基本自己断点查找bug。最后!最后!最后!我这个从没写过几次技术博客的人,要写这篇技术贴的原因是:昨晚加班到...
1、新建一个MediaPlayer组件2、在canvas下新建一个AVProVideo组件并将上一步新建的MediaPlayer组件赋值到avprovideo组件上的mediaplayer上3、将需要播放的视频放在StreamingAssets文件夹下接下来就是用代码调用了1、_mediaPlayer.OpenVideoFromFile(MediaPlayer.FileLocation.RelativeToStreamingAssetsFolder,视频路径,是否自动播放);//加载视频2、_mediaPlayer.Control.Play();//播放视频3、_mediaPlayer.Control.MuteAudio(是...
前言在unity的ugui中Text控件,有时我们会有各种各样的需求,比如类似html中css的text-overflow属性,希望一段文字如果不够长就全显示,如果特别长就截断并且后面加上例如…这种后缀。好吧这样的需求在ugui里貌似没有现成的方法,如果有的话麻烦指点一下~实现大概的思路就是-首先要能判断什么时候overflow-并且支持加上后缀那么text控件本来是支持overflow然后直接截断的,但是比较暴力,直接砍断,不能加后缀,并不满足我们的需...
我就废话不多说了,大家还是直接看代码吧~///<summary>///计算字符串在指定text控件中的长度///</summary>///<paramname="message"></param>///<returns></returns>intCalculateLengthOfText(stringmessage,Texttex){inttotalLength=0;FontmyFont=tex.font;//chatTextismyTextcomponentmyFont.RequestCharactersInTexture(message,tex.fontSize,tex.fontS...
目的:读取streamingassets下的文件中指定的一段字节已知:文件中的起始位置,和需要读取的长度1.android下读取1.1不能直接使用C#的FileStream,读取失败varbuffer=newbyte[size];FileStreamstream=File.OpenRead(path);stream.Read(buffer,pos,size);报错:IsolatedStorageException:Couldnotfindapartofthepath"/jar:file:/data/app/com.xxx.xxxx-1/base.apk!/assets/xxx.pack".1.2可以使用Unity原生接口与...
IO流代码:voidLoadByIO(){floattime=Time.time;FileStreamfs=newFileStream(path,FileMode.Open,FileAccess.Read);fs.Seek(0,SeekOrigin.Begin);byte[]bytes=newbyte[fs.Length];fs.Read(bytes,0,(int)fs.Length);fs.Close();fs.Dispose();fs=null;Texture2Dt=newTexture2D(1,1);t.LoadImage(bytes);img.text...
先上一张效果图usingUnityEngine;usingSystem.Collections;publicclassTestRotateRound:MonoBehaviour{publicGameObjectSphere;privatefloatcurtTime=0.0f;voidUpdate(){//使用C#封装好的代码RotateAroundgameObject.transform.RotateAround(Sphere.transform.position,Sphere.transform.up,72*Time.deltaTime);//自己封装代码,功能和上面的相同//RotateAround(...