Unityvbs脚本出错错是咋回事

当前位置: &
& Unity3D脚本中文字符乱码的解决方案
Unity3D脚本中文字符乱码的解决方案
类别:&&大小:8.08MB语言:简体中文&&授权:免费软件
  用Unity这么久,一直就听别人说遇到在脚本里面用中文字符会乱码的问题。这些问题在Visual Studio比较少,通常都是在MonoDevelop上会出现,甚至在Monodevelop编辑器,写了中文注释,会出现程序报错等问题。  其实这些问题都是由于脚本的编码有问题,修改一下脚本编码为UTF8,这些问题都可以解决 。  首先,你可以修改Unity提供的脚本模板,让你以后生成的脚本都不出现编码问题:  找到的安装目录:  注意看路径,找到这个脚本模板的文件夹,上面两个就是javaScript和c#的脚本模板,我们可以修改他们,鼠标右键,使用记事本打开它们。  选择另存为,然后把编码改成UTF8,保存,可以了。以后你生成的脚本就全部都是UTF8的了。  既然都改了脚本模板了,我们可以做更多的修改,让我们的脚本生成的时候符合自己的要求,比如我的是这样的,加上了必要的类注释。  对于之前就已经写好的脚本,你也可以这样用记事本打开,然后另存为UTF8,同样可以解决编码的问题。不过如果你之前已经写了很多脚本,现在要一个个改,估计会把你改傻。  我自己写了一个工具,可以把脚本改成自己想要的编码:  选择脚本的目录,将会把目录下的所有js或者c#脚本全部打开  然后我可以选择想要的编码类型  最后点击一下转换的按钮,ok!全部都转换成功了。软件名称:  Unity3D圣典 中文版软件大小:8.08MB下载地址:
上一篇 &:
下一篇 &:
文章链接:https://www.gezila.com/tutorials/9848.html
(转载时请注明本文出处及文章链接)安装:UnityVS(Visual Studio Tools For Unity)
https://marketplace.visualstudio.com/items?itemName=SebastienLebreton.VisualStudio2015ToolsforUnity
在unity中切换到vs2015编辑器打开源码
在vs中选择附加到unity工具栏
vs中:设置好断点, 在unity中play就可以断到了。
旧版本vs的下面才需要:
在Unity中导入的方式为:菜单栏-&Assects-&ImportPackage-Visual Studio xx Tools
菜单栏中会多出来一项 Visual Studio Tools
选择 Open In Visual Studio,就会用VS打开该项目的工程。
在unity的Assets-&Scenes中选择要调试的 场景,
vs中:设置好断点,在工具栏中选择 Attach to unity and play
这样不用编译也可以直接调试脚本了。
Visual Studio 2015 Tools for Unity与VS2015的bug
之前使用Unity4.X配合的是Visual Studio 2013 Tools与VS2013的时候,是可以打开项目属性的
更换了Unity5.x配合Visual Studio 2015 Tools...
Visual Studio Tools for Unity安装及使用
Visual Studio Tools for Unity安装及使用
unity调试-vs2015调试c#代码以及api提示
-工具版本:Unity 5.4.0f3, vs2015,VSTU2.3
- 此方式适合unity5.2+版本,之前的版本直接去官网看看,传送门
VSTU2.3下载地址 : https://blo...
用VS打开Unity项目,编译遇到的坑
问题描述:
用VS打开Unity项目,然后编译项目,会得到后缀名为.dll.dll的文件,多了个.dll
问题出现环境:
Microsoft Visual Studio 2015 &em&Tools&/em& &em&for&/em& &em&Unity&/em& 安装失...
最新Visual Studio &em&Tools&/em& &em&For&/em& &em&Unity&/em& 安装使用解析
Visual Studio 2015 &em&Tools&/em& &em&for&/em& &em&Unity&/em&与&em&VS2015&/em&的bug...
*版权证明: 只允许上传png/jpeg/jpg/gif格式的图片,且小于3M
*详细原因:
交 &em&VS2015&/em& &em&Tools&/em& &em&For&/em& &em&Unity&/em& &em&Tools&/em& 5积分 立即下载 ...
Unity 的开发者们,尤其是微软系的Unity开发者们,用Mono是不是烦死了?你是不是跟我一样,用vs来写代码,用Mono来跟踪调试?好麻烦啊好麻烦。
也许你会说,傻逼你不会...
Microsoft Visual Studio 2015 Tools for Unity Setup Wizard ended prematurely 最近跟着unity最新版本。我也升级到unity...
两种方法,第一种方法可控性很差,捕捉窗口事件那种,且vs公用版没有引用数量功能
本人推荐用第二种方法,即使用vs安装程序安装unity tools
1.unity安装vs2017
UnityDo...
没有更多推荐了,Unity页面有层次视图,Project工程视图,Scene场景视图,检视窗口;
    脚本组件一般都显示在检视窗口中;
检视窗口: 可以显示游戏场景中当前旋转对象的详细信息,以及游戏整体的属性设置;包括对象的名称,表情,位置坐标,旋转角度,缩放,组件等信息;
Transform组件作用: & &①.用来维持父子关系;
& & & & & & & & & & & & & & & & & ②.负责游戏对象的变换(位置,缩放,旋转);
& & & & & & & & & &因为任何创建的游戏对象都有位置,旋转和缩放最基本的作用,所以Transform组件是每一个游戏对象所必须存在的.
脚本的创建和使用方法: & 为了便于统一管理,在工程视图的Assets文件夹下创建一个Script的文件夹用于指定储存脚本;
& & & & 创建方法: ①. 在项目试图里面单击右键, 然后将创建好的脚本拖入到游戏对象下;
& & & & & & & & & & & & ②.直接在游戏对象下去创建脚本;然后点击右上角齿轮找到Edit 打开编译脚本,也可以双击脚本进行打开;
& &&&& & & & & & & &&
脚本的使用: & & &前面提到了脚本的打开进行编译, 在这里要特别注意:
& & & & & & 注: & &类名与脚本组件名字一致,并自动继承MonoBehaviour类,类名与脚本名不一样会出错; &
& & & & & & & & &&
& & & & & & & & & & & & & & & & &
阅读(...) 评论()The following error occurred:
The requested URL was not found on this server.
Please check the URL or contact the webmaster.在我们开发游戏的过程中,经常会碰到脚本引用丢失的情况,但是怎么把它们修复到我们的理想情况呢?先在这打个预防针,不是所有情况下的脚本引用丢失都能修复,但绝大多数情况下都是可行的,只要你知道原来脚本的GUID和FILEID(不知道也可以在prefab中找到),最重要的是你要有(必须有)用来做修复的脚本GUID和FILEID,要不然就没办法修复 了。
我举个极端情况,假如Prefab挂了A脚本,但是这个Prefab是第三方的,但是它却没有把A脚本给你,这种情况下你就没办法修复了,除非你通过其它途径知道了A脚本的实现,你自己在本地创建了一个类A的脚本,这样才可能被修复
脚本在Prefab中被引用的原理
脚本被引用有两种情况
a.prefab引用的是cs文件脚本
b.prefab引用的是dll文件中的脚本
对于第一种情况,脚本的文件名必须和类名相同,且必须为MonoBehaviour类,不管脚本里面有一个或多个类,只有和文件名相同的类名的才能被挂接上
对于第二种情况,一个脚本可以包含多个MonoBehaviour类,如果把它打成dll后,它里面的所有类都是可以被挂接的
prefab挂了脚本,打成AssetBundle后,加载运行的时候,只有第一种情况的脚本是可以生效的,挂的dll是无效,因为bundle加载并初始化的时候,unity是从包内的脚本中去搜索的,并不会从包内的dll中去搜索(这也是脚本更新的拦路虎之一,解决方法要么动态挂脚本,要么挂的脚本不热更,跟包走)
引用的原理,如下图:
用文本编辑器打开prefab文件,如上图,挂载的脚本如上紫框内所示,fileID脚本中类的信息,guild表示脚本所在的文件ID
a.直接挂载脚本
这种情况下,fileID的值永远是,它实际上指的是MonoScript类型组件,它的值由ClassID * 10000所得,,而guid能直接定位到MonoScript脚本文件
所以它是通过guid找到脚本文件,然后挂载这个脚本中与脚本文件名相同的类
b.直接挂载DLL中的脚本
这种情况下,fileID的值是由"s\0\0\0" + type.Namespace + type.Name的值转换成MD4的值,guid指的是这个dll所对应的文件(MD4的算法贴在最后面)
所以它是通过guid找到dll文件,然后生成里面所有类的MD4,然后和这个值做比对,相同的则挂载上去
脚本引用修复
一、原来是挂的脚本(可以通过fileID等于1150000判断),要替换成新的脚本
a.把prefab中的guid通过文本工具统一替换成新脚本的guid
b.直接把新脚本的.mate文件里面的guid改成prefab中的
c.如果新脚本已经有地方有的,不能改.mate,就只能使用a方法
二、原来是挂的DLL中的脚本(可以通过fileID不等于1150000判断),要替换成新的脚本
a.把prefab中的guid改成新脚本的guid,把fileID统一改成1150000
三、原来是挂的脚本,要替换成dll中的脚本
a.把prefab中的guid改成dll的guid,把fileID统一改成DLL中类的Type算出来的MD4的值
四、原来是挂的DLL中的脚本,要替换成新DLL中的脚本
a.把prefab中的guid改成新dll的guid,把fileID统一改成新DLL中类的Type算出来的MD4的值
注:如写工具时,要获得一个本地脚本中包含哪一些类,可以使用AssetDatabase.Load,它返回的是一个MonoScript,通过它可以获得到所有类的信息
MD4算法如下:
using Susing System.Collections.Gusing System.Lusing System.Security.Cnamespace cn.crashByNull{
public class MD4 : HashAlgorithm
private uint _a;
private uint _b;
private uint _c;
private uint _d;
private uint[] _x;
private int _bytesP
public MD4()
_x = new uint[16];
Initialize();
public override void Initialize()
_b = 0xefcdab89;
_bytesProcessed = 0;
protected override void HashCore(byte[] array, int offset, int length)
ProcessMessage(Bytes(array, offset, length));
protected override byte[] HashFinal()
ProcessMessage(Padding());
return new[] { _a, _b, _c, _d }.SelectMany(word =& Bytes(word)).ToArray();
Initialize();
private void ProcessMessage(IEnumerable&byte& bytes)
foreach (byte b in bytes)
int c = _bytesProcessed & 63;
int i = c && 2;
int s = (c & 3) && 3;
_x[i] = (_x[i] & ~((uint)255 && s)) | ((uint)b && s);
if (c == 63)
Process16WordBlock();
_bytesProcessed++;
private static IEnumerable&byte& Bytes(byte[] bytes, int offset, int length)
for (int i = i & i++)
yield return bytes[i];
private IEnumerable&byte& Bytes(uint word)
yield return (byte)(word & 255);
yield return (byte)((word && 8) & 255);
yield return (byte)((word && 16) & 255);
yield return (byte)((word && 24) & 255);
private IEnumerable&byte& Repeat(byte value, int count)
for (int i = 0; i & i++)
private IEnumerable&byte& Padding()
return Repeat(128, 1)
.Concat(Repeat(0, ((_bytesProcessed + 8) & 0x7fffffc0) + 55 - _bytesProcessed))
.Concat(Bytes((uint)_bytesProcessed && 3))
.Concat(Repeat(0, 4));
private void Process16WordBlock()
uint aa = _a;
uint bb = _b;
uint cc = _c;
uint dd = _d;
foreach (int k in new[] { 0, 4, 8, 12 })
aa = Round1Operation(aa, bb, cc, dd, _x[k], 3);
dd = Round1Operation(dd, aa, bb, cc, _x[k + 1], 7);
cc = Round1Operation(cc, dd, aa, bb, _x[k + 2], 11);
bb = Round1Operation(bb, cc, dd, aa, _x[k + 3], 19);
foreach (int k in new[] { 0, 1, 2, 3 })
aa = Round2Operation(aa, bb, cc, dd, _x[k], 3);
dd = Round2Operation(dd, aa, bb, cc, _x[k + 4], 5);
cc = Round2Operation(cc, dd, aa, bb, _x[k + 8], 9);
bb = Round2Operation(bb, cc, dd, aa, _x[k + 12], 13);
foreach (int k in new[] { 0, 2, 1, 3 })
aa = Round3Operation(aa, bb, cc, dd, _x[k], 3);
dd = Round3Operation(dd, aa, bb, cc, _x[k + 8], 9);
cc = Round3Operation(cc, dd, aa, bb, _x[k + 4], 11);
bb = Round3Operation(bb, cc, dd, aa, _x[k + 12], 15);
private static uint ROL(uint value, int numberOfBits)
return (value && numberOfBits) | (value && (32 - numberOfBits));
private static uint Round1Operation(uint a, uint b, uint c, uint d, uint xk, int s)
return ROL(a + ((b & c) | (~b & d)) + xk, s);
private static uint Round2Operation(uint a, uint b, uint c, uint d, uint xk, int s)
return ROL(a + ((b & c) | (b & d) | (c & d)) + xk + 0x5a827999, s);
private static uint Round3Operation(uint a, uint b, uint c, uint d, uint xk, int s)
return ROL(a + (b ^ c ^ d) + xk + 0x6ed9eba1, s);
public static class FileIDUtil
public static int Compute(Type t)
string toBeHashed = "s\0\0\0" + t.Namespace + t.N
using (HashAlgorithm hash = new MD4())
byte[] hashed = hash.ComputeHash(System.Text.Encoding.UTF8.GetBytes(toBeHashed));
int result = 0;
for (int i = 3; i &= 0; --i)
result &&= 8;
result |= hashed[i];
Unity3D查找丢失材质和脚本工具
笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,已出版书籍:《手把手教你架构3D游戏引擎》电子工业出版社和《Unity3D实战核心技术详解》电子工业出版社等...
unity如何查找某个脚本挂在了哪些物体上
在开发中往往会遇到一个问题:不知道整个场景中究竟有哪些物体挂载了某一个脚本。如果挨个查找太麻烦了,下面有一种方法可以快速找到解决这个问题。
在unity的Window里有一项Editor tests...
Unity 检查丢失引用的资源 Missing
一、用到的API
1.AssetDatabase.GetAllAssetPaths()获取unity Assets/文件下的所有资源的路径
2.AssetDatabase.LoadAssetAtP...
Unity3D开发之查找面板上某个脚本(包括Missing)
有时候我们需要知道某个脚本在场景上面n
Unity开发过程中,难免遇到需要修改类名(以及对应脚本名)的时候,但如果草率地在MonoDevelop里把类名直接改掉,会破坏现有场景以 及Project Assets中所有引用该脚本的链接,届时还...
在我们开发游戏的过程中,经常会碰到脚本引用丢失的情况,但是怎么把它们修复到我们的理想情况呢?先在这打个预防针,不是所有情况下的脚本引用丢失都能修复,但绝大多数情况下都是可行的,只要你知道原来脚...
Unity中查找脚本被哪些Prefab或场景引用Unity中有个Find References In Scene的功能,但是只能查找在当前场景中的引用。
如果发现某个脚本不知道被挂在哪个Prefab...
网上已经有很多文章讲解过Unity3d脚本DLL 解密,基本方法原理都差不多,就是通过HOOK或者调试下断mono_image_open_from_data_with_name这个函数拿到解密后的DL...
Unity3D脚本参考
Unity所涉及的所有物体的基类。任何从Object继承的公有变量将作为一个目标显示在监视面板中,允许你从GUI中设置。
◆ var hideFlags...
调用另一个脚本内容
分四种情况:
直接脚本名.变量名
声明static public 变量名,然后脚本名.变量名调用
没有更多推荐了,

我要回帖

更多关于 vivo脚本升级出错怎么办 的文章

 

随机推荐