UnityDevelopment
文章平均质量分 62
绯红Tanker
这个作者很懒,什么都没留下…
展开
-
Unity错误之error CS1704: An assembly with the same name `UnityEngine.UI' has already been imported
报错原因:工程之前一直是用Unity 5.5.5p2打开的,今天不小心用2017打开了,打开之后没在意,直到开始导入一段时间之后才发现,再次用Unity 5.5.5p2打开之后出现下面的错误(忽略第二个):解决方法:1、关闭工程然后再次打开,这时候发现概率这个报错没了;2、如果方法1无效,则:1、关闭Unity工程;2、删除该工程的Library文件夹;3、重启工程...原创 2020-02-26 21:10:57 · 4021 阅读 · 1 评论 -
C#格式化小数位的方法
C#格式化字符串还是很方便的,之前一直没用过,也就没有缘分了解Double dValue = 95.12345;int iValue = 10000;string strValue = "95.12345";string result = "";result = Convert.ToDouble(dValue).ToString("0.00");//保留小数点后两位,结果为95.12原创 2015-10-20 23:41:19 · 17306 阅读 · 0 评论 -
Unity中HideInInspector和SerializeField
Unity会自动为Public变量做序列化,序列化的意思是说再次读取Unity时序列化的变量是有值的,不需要你再次去赋值,因为它已经被保存下来。什么样的值会被显示在面板上?已经被序列化,但是没有用HideInInspector标记的值。[HideInInspector]表示将原本显示在面板上的序列化值隐藏起来。[SerializeField]表示将原本不会被序列化的私有变量和保护变量可转载 2015-10-20 01:14:32 · 1001 阅读 · 0 评论 -
Unity导出项目
今天需要将一个Prefab导出,给美术做动画,由于之前没做过项目导出,在导出的时候勾选关联项的时候费了好大功夫后来经同事指点,发现一条捷径,选择要导出的Prefab,右键选择Select Dependences,这样就选中了所有该Prefab引用到的资源,然后再选择导出,这个时候再去掉Include Dependences项,剩下的就是想要导出的资源。原创 2015-08-04 23:27:57 · 5531 阅读 · 0 评论 -
Visual studio未能正确加载“Microsoft.VisualStudio.Editor.Implementation.EditorPackage”包
解决方案:Microsoft Visual Studio 2012/2013"->"Visual Studio Tools"->"VS2012 开发人员命令提示"->输入"devenv /resetuserdata "原创 2015-08-14 09:31:32 · 5110 阅读 · 0 评论 -
Unity中的Mathf类
Mathf.Abs绝对值 计算并返回指定参数 f 绝对值。 Mathf.Acos反余弦 static function Acos (f : float) : float 以弧度为单位计算并返回参数 f 中指定的数字的反余弦值。 Mathf.Approximately近似 static function Approximately (a : float转载 2015-07-30 21:30:19 · 4750 阅读 · 0 评论 -
C# Enum,Int,String的互相转换
C# Enum,Int,String的互相转换 Enum为枚举提供基类,其基础类型可以是除 Char 外的任何整型。如果没有显式声明基础类型,则使用 Int32。编程语言通常提供语法来声明由一组已命名的常数和它们的值组成的枚举。 注意:枚举类型的基类型是除 Char 外的任何整型,所以枚举类型的值是整型值。 Enum 提供一些实用的静态方法: (1)转载 2015-07-30 20:23:18 · 694 阅读 · 0 评论 -
为什么SVN有时候检测不出Unity Profab的修改
有时候修改一个Prefab,修改了里面gameobject的属性,保存之后,测试提交,发现SVN并没有检测到有修改,导致提交疏漏。Apply只是修改了Unity3D的内存文件.并没有写入磁盘中;你可以apply后重新打开Unity,是没有保存下来的;必须要保存一下Scene,这个Prefab才会真正保存下来,并被SVN识别。 Unity在Save Scene时不仅保存了Sc原创 2015-07-17 11:19:22 · 2475 阅读 · 0 评论 -
Unity脚本函数的执行顺序
今天遇到一个问题,发现是脚本自带函数执行顺序的问题,于是专门找到相关资料深入了解一下,并且实践测试,加深理解;Unity脚本自带的函数的执行顺序测试代码:using System;using System.Collections;using System.Collections.Generic;using UnityEngine;class Test : MonoBehaviou原创 2015-07-14 19:54:37 · 984 阅读 · 0 评论 -
Visual Studio For Unity安装之后打开Unity工程在Import Package里找不到的解决办法
不知道什么原因,有时候明明已经安装了Visual Studio For Unity,但是导入包的时候在Import package找不到这个选项;有时候是打开另外一个工程,可能是没有刷新新的包;不过,安装的Visual Studio For Unity的时候,安装包是留在安装目录下的,如果发现没有,再到安装目录下找到导入就可以了;原创 2015-11-07 18:38:11 · 9093 阅读 · 3 评论 -
isFinite(outDistanceForSort)和isFinite(outDistanceAlongView)的原因
现在还不知道具体原因,不过,我遇到的是因为图集改变了,其中一个图片资源被删掉了,然后运行的时候一直提示:isFinite(outDistanceAlongView)。挺耗内存的,上网查了下,很多人说跟数字无穷大或者无穷小有关,然后逐步排查,最终找到的原因。其中一个原因:问题是因为mesh的uv点里也就是mesh.vertices 中的Vector3的x、y、z中有的值为NaN也就是非数原创 2015-11-07 18:44:44 · 4799 阅读 · 0 评论 -
Unity报错:Collection was modified; enumeration operation may not execute
//全局特效节点 比如爆屏效果 在切换界面的时候销毁 List mObjectList = new List(); public void AddGameObject(GameObject go) { mObjectList.Add(go); } public void RemoveGameObject(GameObject go)原创 2015-10-09 23:52:31 · 9329 阅读 · 1 评论 -
如何解决错误:A script behaviour has a different serialization layout when loading
在实际开发中碰到一个问题,加载一个Prefab,Unity会报以下错误:A script behaviour has a different serialization layout when loading. (Read 24 bytes but expected 40 bytes), Did you #ifdef UNITY_EDITOR a section of your seria转载 2016-07-09 01:25:51 · 6763 阅读 · 0 评论 -
DateTime秒数转日期时间
由于时区的差别,UTC时间转成本地时间:long timesec = 12345678965;DateTime utcdt = DateTime.Parse(DateTime.UtcNow.ToString("1970-01-01 00:00:00")).AddSeconds(timesec);//转成本地时间DateTime localdt = utcdt.ToLocalTime();原创 2016-07-28 02:35:32 · 4828 阅读 · 0 评论 -
Unity中Detroy之后的引用情况
之前写C++代码的时候,内存需要自己管理,指针/引用经常指向/引用到了一块已经删除的内存地址而引发程序崩溃。自从用了C#之后,自己不用处处考虑管理内存了,方便了很多。但还是没有想到Unity中,GameObject/MonoBehaviour被Destroy之后下一帧他的引用就置空了。测试代码:class TestMonobehaviour : MonoBehaviour {原创 2016-07-04 03:10:23 · 1514 阅读 · 0 评论 -
全面解析Unity3D自动生成的脚本工程文件
我们在Unity3D开发的时候,经常会看到它会产生不少固定命名工程文件,诸如:Assembly-CSharp-vs.csproj Assembly-CSharp-firstpass-vs.csprojAssembly-CSharp-Editor-vs.csprojAssembly-CSharp-Editor-firstpass-vs.csproj看得不少人云里雾里的。那么,这些转载 2016-07-11 01:38:06 · 1502 阅读 · 0 评论 -
Unity Profiler之Android真机调测
U3D中的Profile也是可以直接在链接安卓设备运行游戏下查看的,导出真机链接U3D的Profile看数据,这样能更好的测试具体原因。大概看了下官方的做法,看了几张帖子顺带把做法记录下来。参考:http://docs.unity3d.com/Documentation/Manual/Profiler.html用安卓真机调测Profile的数据,其实就两种方法,WIFI和ADB的方式。转载 2016-01-29 19:33:44 · 1358 阅读 · 0 评论 -
Unity键值意义
KeyCode是由Event.keyCode返回的。这些直接映射到键盘上的物理键,以下是键值对应列表:Backspace 退格键 Delete Delete键 TabTab键 Clear Clear键 Return 回车键 Pause 暂停键 Escape ESC键 Space 空格键 Keypad0 小键盘0 Keypad1 小键盘1原创 2015-11-18 00:15:45 · 1513 阅读 · 0 评论 -
iTween的使用范围
留坑原创 2015-10-14 22:27:48 · 415 阅读 · 0 评论 -
关于Unity3D中的版本管理
使用Unity3D也有一段时间了,由于团队一直使用SVN进行版本管理,现总结一下:(1) Unity3D的二进制资源必须加锁进行版本控制,因为它没办法merge;(2) Unity3D自己产生的C#工程相关文件,包括VS产生或者Mono产生的,都不需要归入版本控制;(3) 在新加入项时,Unity3D会产生一个同名的.meta文件,这个文件记录了此项一个唯一的64位的guid,这个文件转载 2015-11-11 00:54:17 · 1279 阅读 · 0 评论 -
InvalidOperationException: Collection was modified; enumeration operation may not execute.
今天写C#脚本,运行时报错,错误信息:InvalidOperationException: Collection was modified; enumeration operation may not execute.然后定位到出错行,发现是foreach循环出错,记得之前遇到过,foreach...in...里不能有remove的,奈何写的时候又忘记了。错误代码:foreach(原创 2015-07-13 18:35:39 · 17281 阅读 · 2 评论 -
C#遇到的坑
1、string.Replace原创 2015-05-21 21:38:08 · 963 阅读 · 0 评论 -
Access to the path "Library\UnityAssemblies\UnityEngine.xml" is denied.
这个问题基本上是重新打开UnityEditor,导入工程的时候VisualStudio还开着导致的。解决方法是关掉Visual Studio,再重新打开。原创 2015-07-01 17:14:11 · 3034 阅读 · 0 评论 -
unity3d中的坑和解决方案
unity3d中的坑和解决方案 unity3d是一个很牛x的引擎,当然其也有一些东西是不太好或者说不习惯的,下面列举一些:1、制作特效时,使用animation记录的位置是相对位置,如果直接放到别的节点下会出问题; 解决方法:在特效根节点的上一层加上一个transform是(0,0,0) (0,0,0)(1,1,1)的父节点,之后再使用和处理父节点2、转载 2015-05-20 19:42:01 · 796 阅读 · 0 评论 -
pvr与png的内存占用
传道授业解惑也,原文地址:pvr与png的内存占用。转载 2015-05-06 21:16:35 · 813 阅读 · 0 评论 -
3dsMax插件开发环境配置
系统说明:Windows 7 X64、3dsmax 2014 64位、3dsmax 2014 sdk、visual studio 2010;参考博文:万圣节福利:红孩儿3D引擎开发课程3dsmax导出插件初步(这个应该不是原博文地址)这篇博文已经讲的很详细了,我在设置的过程中遇到了一些问题,无法一一列举,仅仅把还有印象的做个笔记,以备日后有用;3dsmax sdk开发所需的原创 2015-05-04 21:10:48 · 3356 阅读 · 0 评论 -
Unity导入新资源时闪退
Unity闪退,今天遇到一个问题,新更新了项目工程,有新资源加入,但是在打开工程,导入新资源的时候闪退,必闪,解决方法是删除项目工程下的Library和Obj文件夹,重新编译项目,当然,如果项目比较大,则很可能会花费不少时间。原创 2015-04-26 22:07:20 · 3542 阅读 · 1 评论 -
Unity导入NGUI遇到的问题
由于NGUI的易用性以及普及程度,让Unity自带的UI系统黯淡不少,作为一个准备认真了解下Unity3D引擎的开发者,当然选择用户最多的UI系统,毕竟群众的眼光是雪亮的嘛。(Unity版本4.5.5)将NGUI下载下来之后,然后就开始导入,依次选择菜单Assets->Import Package->Custom Package...然后在弹出的对话框中选择你要导入的资源选择下原创 2014-12-27 11:07:35 · 6447 阅读 · 1 评论 -
Unity3D中Enabled、Destroy与Active的区别
Unity3D游戏对象消失三种方法的区别:1、gameObject.active:是否在场景中停用该物体,在你gameObject.active =false中,则你在场景中用find找不到该物体。如果该物体有子物体,你要用SetActiveRecursively(false) 来控制是否在场景中停用该物体。2、GameObject.Destroy():表示移除物体或物体上的组件,代表销毁转载 2015-01-08 23:29:46 · 19015 阅读 · 0 评论 -
Mac版MonoDevelop启动调试时程序假死
开发机的Mac配置比较低,在打开Unity Editor之后再启动MonoDeveloper调试时,已经尽可能关掉不相关的程序,但是还是老是出现MonoDeveloper假死现象,出现频率之高,严重影响了工作效率,你想想,本来你写完了一段代码,设置好断点,泡杯咖啡,点击Debug,跑起来看看数据是否正确,结果就是绑定不了进程,编辑器假死,不着急,先喝完一杯咖啡压压惊,顺便刷一遍微博,卧槽,梅西要离原创 2015-01-07 23:26:28 · 3595 阅读 · 1 评论 -
Unity3D中的Update、LateUpdate和FixedUpdate的意义
1、MonoBehaviour.Update 更新当MonoBehaviour启用时,其Update在每一帧被调用。2、MonoBehaviour.FixedUpdate 固定更新 当MonoBehaviour启用时,其 FixedUpdate在每一帧被调用。处理Rigidbody时,需要用FixedUpdate代替Update。例如:给刚体加一个作用力时,你必须应用作用力在Fix转载 2015-01-06 23:42:27 · 10924 阅读 · 0 评论 -
Unity编辑资源一定要在UnityEditor进行
Unity编辑资源一定要在UnityEditor进行,否则可能出错。今天,用UnityEditor绑定Script,后来想把Scipt删除,由于是在编辑器IDE里,直接在IDE里删除了,导致Unity工程损坏,才发现不是在UnityEditor里删除的脚本,所以出错。原创 2015-05-20 19:21:30 · 1251 阅读 · 0 评论 -
C# List多字段排序
根据符文的品质和战斗力排序,当品质一致的按战斗力排序int SortRunesInfoByQualityAndfightPower(FuWenShowVO obj1, FuWenShowVO obj2) { int res = 0; if ((null == obj1) && (null == obj2)) return 0; else原创 2015-05-20 21:28:09 · 8277 阅读 · 0 评论 -
NGUI UILabel渲染大小
项目中需要文字的背景框自适应文字内容的宽和高,宽很方便确定,在UILabel面板里有这个属性值:这里的Max Width就是每一行的最大像素个数,Max Lines设置0的意思是没有最大行数限制。但是行数怎么获取呢,UILabel里并没有这个接口,但是我们知道NGUI要把文字渲染出来,肯定是需要知道渲染范围也就是渲染大小的。我们先到UILabel类里寻找有没有这样一个方法,然后原创 2015-05-27 19:03:49 · 5887 阅读 · 0 评论 -
NGUI创建动态字体
参考文章原创 2015-05-25 21:32:36 · 575 阅读 · 0 评论 -
基于触发机制的脚本系统
#一直对一些诸如新手指引、剧情对话之类的系统无语,因为跟游戏的很多个系统之间的耦合太大,代码写起来很是麻烦,之前想过一些比较取巧的实现方式,但面对各种需求时改的面目全非,看到下面这篇文章,深有启发,在此先记下。#1.问题 绝大多数游戏项目都会开发新手引导,剧情之类的功能。这类功能有两个最大的特点:一是跳跃大,二是特殊化。一个完整的功能(如一段教学指引)需要在多个逻辑系转载 2015-07-08 21:41:04 · 992 阅读 · 0 评论 -
Android帧率变慢的原因
1、由于使用32位显示缓存器,使用24位深度缓存器取消勾选Use 32-bit Display Buffer、Use 24-bit Depth Buffer:然后重新打包。原创 2015-07-08 21:06:18 · 1984 阅读 · 2 评论 -
NGUI脚本创建UILabel
UILabel label = NGUITools.AddChild(parent);if (null != mCommonFont) label.font = mCommonFont;label.font = mCommonFont;label.transform.localScale = new Vector3(24.00f, 24.00f, 1.00f);label.effectSt原创 2015-05-19 19:26:29 · 2347 阅读 · 0 评论 -
NGUI之UITab Bar的不能将Sprite与SelectedSprite设置成相同的精灵
如图,我想把选中的样式的Sprite选择跟正常情况下的一致,但是怎么选择都不行,后来调试到UITabBarInspector.cs,发现下面这段代码:void SelectedSprite (string spriteName) { if (mTabBar != null && mTabBar.spriteName != spriteName) { NGUIEditorTool原创 2015-05-19 19:07:48 · 1040 阅读 · 0 评论 -
游戏新手引导前后端代码设计2个要点
新手引导很多游戏都有。但是有的做的却不是那么如意。有时候引导卡死,却找不到问题。其实很多时候和设计的机制有关。本文假设引导是一种强制性的引导。一个引导由很多步骤(比如要玩家点哪里,点哪里,这些都是一个个步骤)组成。 1、引导的发起 后端关注的是引导,因此,后端只要各种事件触发一个引导,把这个引导ID发给客户端,就完成了引导的发起。 客户端收到服务端发的引导ID,就会获转载 2015-06-03 00:40:02 · 1859 阅读 · 0 评论