关于unityunity3d5.0自带资源包的MonoDevelop的问题,求助

Unity进阶技巧 - 使用MonoDevelop来断点调试 - 简书
Unity进阶技巧 - 使用MonoDevelop来断点调试
断点调试在编程调试过程中是一项非常重要的功能,而Unity自带的脚本编辑器MonoDevelop需要进行一些设置才能使用断点调试的功能,今天我们就来看看如何使用MonoDevelop进行断点调试。
【版本环境】Unity版本:5.2.2
你将学到什么?
如何设置Unity的默认脚本编辑器
如何连接MonoDevelop和Unity进程进行调试
一、设置Unity的默认脚本编辑器
如果没有特别修改过Unity的脚本编辑器的朋友,可以跳过这一段
图一:打开Preferences窗口
图二:修改默认的脚本编辑器
设置步骤如下:
打开Unity的Preferences界面,如上图一。
选择配置界面的External Tools分页。
将External Script Editor设置改为internal,如上图二。
二、连接Unity和MonoDevelop进行断点调试
打开Attach界面
首先我们打开MonoDevelop脚本编辑器,选择运行-&Attach to Process...,打开连接对话框,在连接对话框中选择你的Unity项目进程,如下图:
连接你的Unity项目进程
连接成功后,MonoDevelop编辑器左上角视图会发生变化,如下图:
连接后的视图变化
这里就是对于断点调试的一些操作按钮。而要关闭MonoDevelop与Unity进程的连接也很简单,点击上图红框中最后一个插头图示的按钮即可断开连接了。
连接成功后,再回到Unity场景编辑器,开始运行你的游戏,如果你有在代码中打上断点,那么当程序逻辑运行到代码中断点的位置后,便会停在断点处,此时我们便可追踪当前断点的一些数据信息进行调试了。
代码中断点图示
独立开发者发布时间: 12:45:05
编辑:www.fx114.net
本篇文章主要介绍了"unity的坑 ",主要涉及到unity的坑 方面的内容,对于unity的坑 感兴趣的同学可以参考一下。
http://dearymz./blog/static//
Hierarchy窗口中是场景中的Game Object列表
Project窗口中是磁盘上Assets文件夹中的内容,可用来创建Game Object
调试用Debug.Log()或者print函数打日志
目前完全无法采用VisualStudio进行调试,只能用MonoDevelop。因Unity采用的是Mono运行时引擎而不是CLR,参考
另发现插件,Write and debug your Unity games inside Visual Studio
官方文档:&
MonoDevelop对Unity的attach调试不能跨dll
Unity自带Mono版本可能是2.6
目前应谨慎考虑采用Mono写需长时间运行的服务器程序
MonoDevelop:
MonoDevelop写的源码文件会以UTF8 Unix结尾方式保存
Unity自带的MonoDevelop和官方MonoDevelop的有区别的,不要升级MonoDevelop
实用函数:
()可以切换场景
资源管理:
文件打包用的是
所有通过类加载的资源必须放在名为Resources的目录中
All assets that are in a folder named "Resources" anywhere in the Assets folder can be accessed via the&&functions. Multiple "Resources" folders may exist and when loading objects each will be examined.
不同Resources目录同名目录加载规则无法预测!
,用的是直接COM读取excel的方式,没有参与资源管线
所有需要通过散包方式加载的文件必须通过的方式,加载后可自动识别movie、text、texture和bytes四种格式
,包括对已封装好的内部资源的加载和外部散包资源的加载
Used&&to center your automatic GUILayout
引用第三方库:
Unity支持(Platform Invocation Services)方式的插件,
团队工作:
编译与发布:
定制Build流程:&
Unity发布的exe是非托管的,但逻辑dll是放在GAME_Data\Managed下的,代码完全可以反编译
没发现Unity编译后的资源目录Game_Data中的文件结构和编辑器中的Project目录有明显的直接对应关系
编译后资源都被放到sharedassets*.assets这样的加密文件中,其中*可能是场景编号; Scene文件可能被放到了level*中
Resources和其他目录不一样,其他目录编译完后会被自动打包合并,而Resources会有一个直接对应的resources.asset文件
相同的源反复编译生成的二进制不变
添加空场景后Game_Data/mainData发生改变
prefab和各种资源关联啥的会自动处理的,只把用到的打包
编辑器中Import Package但没有真正使用不会对编译结果造成影响
Game.exe始终是稳定不变的
版本管理:
即使采用了Force Text选项,ProjectSettings下很多asset文件也还是二进制格式的
WebBrowser相关:
可通过方法调用浏览器js方法
Unity doesn't support vector fonts. For every font size that you want to support, you need to import a new version of the font and change its import settings to a different size.&@Unity 3.x Game Development by Exple Beginner's Guide[P201]
,其中shader开放可免费使用
采用双色半圆拼接饼状图是个技巧&
(不断更新中)
(仅限于MonoBehaviour子类)
Inherit from&
Use the&&or&&function to do initialisation
The class name must match the file name
Coroutines have a different syntax in C#
Coroutines have to have a return type of IEnumerator and you yield using "yield return" instead of just "yield"
Don't use namespaces
Only member variables are serialized and are shown in the Inspector
Avoid using the constructor or variable initializers
Never initialize any values in the constructor or variable initializers in a MonoBehaviour script. Instead use Awake or Start for this purpose.
AssertBundle
Editor扩展脚本:
Editor脚本是可以用C#写的,编译完后重启Unity生效
不要在Editor脚本中采用中文菜单,有一定可能down机
如果乱码,需要将文件保存为UTF8格式
压缩方式用的是lzma
,这个对版本制作有用
版本控制:
,哪些文件该放到svn的问题解决
Unity目前的版本已经把需要svn控制的文件单独归类放到Project Settings里了,现在只需要将Assets和ProjectSettings两目录加入svn即可&@
必须进行以下设置才可将项目加入到svn管理:&
meta文件为Unity内部使用,不要手工更改,也必须加入svn
Unity内部是用GUID做文件间引用的
Force Text可以将场景文件序列化为文本,以利于版本控制,默认为二进制
Unity资源序列化采用的是
中文教程:&
中文教程:&
相同Depth的控件会存在z排序不稳定问题!复杂界面要进行合理的规划
Unity引用第三方dll随便拖到项目任何目录就可以了
所引用的托管dll必须是net3.5版本以下的(包括)
如果托管dll依赖非托管dll,则pc standalone版本的可行,web版的有安全限制,移动版也不可行,甚至System.IO名字空间都是受限的
要采用net20版本的,不要用mono版的,据说有坑
微端构造AssetBundle的时候不加BuildAssetBundleOptions.DeterministicAssetBundle选项,两次出来的md5码就不一样
将扩充代码放到单独目录中用VS开发,这样就可以加UnitTest了
运行时会将日志输出去到Data目录下的output_log.txt文件(UTF8),省的自己写日志文件了
不要打开GAME.sln,而要打开GAME-csharp.sln,可同时由MonoDevelop和VisualStudio编辑
调整项目Build Settings后,则可在MonoDevelop/Run/Attach to Process窗口中找到正在运行的游戏以进行attach调试&
protobuf编解码在Unity Editor中运行正常,但单独部署运行抛出TypeInitializationException的问题
如果发现Unity Editor中运行正常而单独运行时不正常,可以考虑将Api Compatibility Level改为.NET 2.0而不是其Subset&
Hightmap Resolution会比Terrain Resolution大1
移动平台小地形最好用模型,或者将Unity自带的Terrain用插件导出为模型,省性能。Unity Terrain依赖shader 2.0,某些手机不支持,即使导出地图也依赖shader 2.0,自己做地形模型一张贴图即可搞定
Skybox的设置在Edit/RenderSettings/Skybox Material下,确保Game Overlay按钮选中才可以显示出来&
要第三人称在场景中漫游,需要将First Person Controller加入到场景
Inspector窗口中的Static Checkbox: Checking this box tells Unity that a particular object in your scene will not be moving during the game, and as such can be lightmapped.&?
支持,整合了,支持P2P,还提供了房间服务器和NAT穿透服务器,搞不定还有代理服务器。开房间娱乐性质的游戏不用写服务器逻辑
Anything that uses Rigidbodies or realistic movement should use FixedUpdate, but instead of Update for every frame.
Unity-4.0.1f2尚不支持Win8-Metro/WinPhone的导出
动态下载和加载资源:
Web MMO需要尽量减少首次下载量,并能在游戏运行中动态加载资源
游戏运行时资源下载和加载,Unity Pro支持两种方法: 资源包和资源目录。非Pro版本智能使用资源目录方法。一个资源包是一个外部的资源集合,游戏中可以使用多个资源包,资源包是在发行版本以外存在的。资源目录是一些资源的集合,资源目录被包含在发行版本里面,但是并没有和任何游戏对象有关联。资源目录通过Edit-&Project Settings-&Player的First Streamed Level With Resource来设定
对Web MMO产品的建议
主要是资源大小的考虑,资源中,贴图是大头,需要尽量减少贴图使用量。卡通类游戏比较适合
由于动态下载和加载资源会一直存在,玩家角色在场景中的移动速度不宜过大,大场景不宜频繁切换。资源动态下载需要占用玩家一定网络带宽
使用Unity的准备工作:
Unity毕竟是一款包含内容和功能很多的游戏引擎。需要花一些时间熟悉其编辑器、代码和开发环境、资源生产流程等主要功能。不建议项目开始前没有一定的准备期
,非常给力的一组学习笔记
unity的主要使用者是关卡策划和程序员
目前Unity对中文的支持不是很好,因此在Unity中尽量不要使用中文,防止出现各种各样莫名其妙的异常
如何调整太阳光方向和天空盒太阳贴图方向一致?
首先在设计视图中拖动视角,让镜头中心对准天空盒上的太阳
然后在渲染设置中临时将天空盒设置为无(为了方便调整Sun的角度,否则天空盒太亮看不清楚)
然后选中Sun并使用旋转工具(快捷键E),将光线的方向正对自己
然后再将天空盒恢复即可&
一个好的游戏没有好的配乐和音效,就好像无暇的水晶缺少了灯光的陪衬。而音乐不仅能渲染出玩家攻略游戏时的氛围,还能增加提高玩家对游戏的认知度 @
所有Prefab实例的属性都引用自Prefab的预设,当预设属性改变时,对应的实例属性也会相应改变。但当实例的某个属性被手工调整后,即使修改预设的属性值,该值也会以手工调整的值为准
随着360和Unity的合作,前者的360安全浏览器预装Unity3d的方案实施会给Unity进军中国市场带来可观的便捷
Choosing GUI framework for your Unity3D project: EZGUI vs NGUI,&&and&
Directional light的Shadow Type:
No Shadows&
Hard Shadow - 影子的轮廓比较清晰&
Soft Shadow - 影子边缘模糊一点,更加逼真&
Particle Emitter: 只管发射粒子
Particle Animator: 粒子动画器,负责对发射器产生的粒子进行二次加工,比如使粒子的颜色不断的变化,缩放粒子等
Particle Renderer: 粒子渲染器,负责将粒子渲染到游戏中,并且可以决定粒子的材质、光影等
当选中Prefab的实例时,检视面板上就会显示预制对象菜单:
Select:在工程面板中快速选取该实例引用的预制
Revert:将实例修改过的参数全部还原为预制的参数
Apply:将实例修改过的参数全部应用到预制,此时所有引用此预制的实例会一起受到影响而变动
yield用法:
所有使用yield的函数必须返回IEnumerator类型(这点和C# IEnumerable标准用法有差异!)
所有IEnumerator类型函数必须使用&StartCoroutine&这个函数触发,不能单独使用
不同颜色的字体需要创建不同的Materials, 其贴图设置为字体贴图, Shader要采用GUI/TextShader&
只有public field才可进入Inspector窗口, 该功能可用[]特性屏蔽
和Inspector窗口关联的public field重命名后Inspector中编辑的值会丢失!
Be aware that any value adjusted in the&Inspector&will override the original value given to a variable within the script. It will not rewrite the value stated in the script, but simply replaces it when the game runs.? You can also revert to the values declared in the script by clicking on the Cog icon to the right of the component and choosing&Reset&from the drop-down menu that appears.
public property不会进入Instactor
enum在Inspector中会自动展示为ComboBox
动态调用, 解耦神器:
可通过方法进行动态方法调用!
可采用/方法, 用字符串名称的方式直接查找对象
将Prefab直接拖入场景可进行查看
, unity官方并未提供引擎dll对应的xml文档, 这对VisualStudio下的自动提示不友好
WCF & Unity
Service References的代码可用VisualStudio自带的&添加服务引用&功能,没必要非命令行用mono的svcutil。成功生成后需要将对应的C#代码文件拷贝到Assert下合适的目录中,否则不会参加编译
需要从C:\Program Files (x86)\Unity\Editor\Data\Mono\lib\mono\2.0拷贝到*\Assets\Plugins下的dll有:
System.Runtime.Serialization.dll
System.Security.dll
System.ServiceModel.dll
System.IdentityModel.Selectors.dll // 该文件也是必要的,否则System.ServiceModel.dll不会被正确引入
Unity会自动生成的两种项目文件,*-csharp.sln/*-vs.csproj或*.sln/*.csproj,前者是供VS用的,后者是供MonoDevelop用的,包含了自定义的项目类型*.unityproj
不要手工向*-csharp.sln中加入任何project,这会在Unity重新生成后覆盖。可将sln另存为得以解决
调整NGUI&米老鼠&大小:&
&is a gui and command line tool to create sprite sheets or sprite atlases
,包括cocos2d、CEGUI、Unity等,还可方便自定义输出格式
unity双开:&
暂没有内嵌浏览器的支持
,将会在随后的unity新版中得到支持
&GUI库,在移动平台会遇到性能问题,但开发效率要比NGUI高
一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!
二、互相尊重,对自己的言论和行为负责。
本文标题:
本页链接:匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。你正在使用的浏览器版本过低,将不能正常浏览和使用知乎。Unity3D-MonoDevelop的中文注释 及 unity3D的debug - 推酷
Unity3D-MonoDevelop的中文注释 及 unity3D的debug
ok,今天开始接触正式的代码了,几万行的代码,直接就晕了,不知道什么时候才能熟悉过来。
按照自己的经验,熟悉代码方式,最好不过debug了
和eclipse不同的是 Unity 和编代码的MonoDevelop是两个软件,着实让我的脑细胞有点转不过来(固化思维)。
First,如何Debug。
打开Unity,菜单栏 unity-》Preferences-&External Tools 第一项External Script tool 确认是Mono
第二步,在unity中打开Mono 菜单栏-&Assets-&Sync MonoDevelop ok,打开就算加载了当前的解决方案
第三步,先关闭unity 在Mono中设置断点,之后运行-》Run With -& Unity Debugger
ok,Mono会让你再次打开Unity选择工程,打开合适的场景,点击运行,OK,你就会发现,可以进行Debug了。
关于MonoDevelop中无法输入中文的bug,我搜了很久貌似没有解决方案,只有一种就是用Xamarin Studio
我给下载地址/download/
安装完毕之后,貌似还需要装MonoFramework-MDK-3.6.0.macos10.xamarin.x86.pkg这个东西
http://download./archive/3.6.0/macos-10-x86/MonoFramework-MDK-3.6.0.macos10.xamarin.x86.pkg
ok,不过它好像没法debug,我去,我再试试把。
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致

我要回帖

更多关于 unity3d自带资源包 的文章

 

随机推荐