3.3 Unity
Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。
无幻
这个作者很懒,什么都没留下…
展开
-
Unity Transform 检视器快速复制粘贴
Unity 检视器上物体的坐标、旋转和缩放,没有快捷方式可以重置值、复制粘贴值,比较不方便。原创 2022-01-15 16:17:50 · 3200 阅读 · 0 评论 -
Unity DragonBones 龙骨隐藏指定插槽
根据等级之类的来显隐龙骨上的插槽,以丰富表现。原创 2021-09-26 21:17:01 · 1042 阅读 · 0 评论 -
Unity Scene场景拾取可视UI控件
游戏画面由多个UI界面组成,当在场景进行拾取UI控件时,往往会先选中最外层的RectTransform控件对象,而不管这个对象有没有实质渲染,导致需要多次选择,才能选择到最贴近的UI控件。另外,由于Unity会优先选择SelectionBase属性的控件,导致拾取按钮文本会先拾取到按钮。原创 2021-08-23 19:41:46 · 981 阅读 · 1 评论 -
Unity 骨骼开启Optimize Game Object后的一些情况处理
原因在骨骼开启Optimize Game Object后,遇到了一些情况,这里记录一下。动画播放异常在游戏中发现动态切换模型,之后的动画就播放异常,查找发现在挂载动画文件前,对模型添加了一个子节点,导致动画生效的时候,找不到这个新增节点的动画帧,造成错乱。所以要等Animator的runtimeAnimatorController挂载完毕,再添加子节点。编辑器下断言报错在角色对象销毁的时候,编辑器会出现断言报错:经过分析,发现报错的数量跟模型的SkinnedMeshRenderer数量一样原创 2021-07-31 10:27:12 · 1132 阅读 · 0 评论 -
Unity Hierarchy窗口的右键菜单增加项
实现在Hierarchy窗口的右键菜单增加项,来快速实现一些功能,比如:自定义的UI创建等等。参照uGUI源码发现并不能添加成功原创 2021-04-29 19:45:17 · 1908 阅读 · 0 评论 -
Unity App 与编辑器进行通信
实现与 Unity Profiler 一样可以连接手机进行通信,来接收 App 发送的信息或发送消息给 App,而 Unity 有开放 EditorConnection 和 PlayerConnection 接口,可以使用它们来实现。原创 2021-03-28 19:41:47 · 1093 阅读 · 0 评论 -
Unity 编辑器枚举值的获取和设置
在 Unity 中为脚本的枚举变量做编辑器时,如果枚举定义不是按顺序的,那么就不方便设置值。Editor下的SerializedProperty字段,其enumValueIndex值是按enumNames的顺序,所以需要进行转换。原创 2021-02-28 21:01:03 · 2280 阅读 · 0 评论 -
Unity 快速切换 Game 视图分辨率
Unity Game 视图是下拉切分辨率,在编辑 UI 时不方便进行切换查看各个分辨率的效果。原创 2021-01-31 09:11:31 · 3797 阅读 · 4 评论 -
Unity Editor 不用反射访问编辑器内部方法
Unity Editor Internals Visible Demo原因在使用 Unity Editor 制作编辑器工具的时候,经常无法对 Editor 内的 internal 类和方法进行访问,需要使用反射方式。反射方式写起来比较麻烦,也不便于调试和更新,Unity 升级了版本,内部接口变化,导致反射失效。解决通过查看UnityEditor.dll文件,可以发现其声明了一些友元程序集,比如[assembly: InternalsVisibleTo("UnityEditor.Facebook.Ex原创 2020-12-27 11:35:16 · 1710 阅读 · 1 评论 -
Unity 扩展弹出菜单窗口
Unity 编辑器下提供了系统级的菜单弹窗,会阻塞消息,卡住渲染,以及不能进行搜索等功能,而它自己有非阻塞版本的弹窗,但不开放给用户使用原创 2020-11-30 20:01:31 · 1078 阅读 · 0 评论 -
Unity SetResolution之后无法获取真实屏幕宽高
原因在安卓机上根据画质去调整分辨率来提高帧率,通过设置【Screen.SetResolution(width, height, true);】方式,但是,发现这种手动设置分辨率后,再通过【Screen Width】去获取屏幕宽度的话,都是手动设置后的值。导致安卓手机分屏模式下,调整尺寸后,也无法获取调整后的屏幕宽高,造成画面进行拉伸。解决既然Unity没有接口可以获取到变化后的窗体尺寸,那么就从Java层入手。手机状态的改变,当横竖屏切换,屏幕尺寸变化,弹出键盘,系统设置改变等条件,就会触发回调事件o原创 2020-08-29 17:23:34 · 2428 阅读 · 0 评论 -
Unity SimpleAnimation在UI上使用的初始化
原因在项目中加入SimpleAnimation组件,可以对3D物体进行播放动画,但是对UI物体却不能播放动画。分析AnimatorCullingMode默认是CullUpdateTransforms,而这个模式对UI不能进行动画,又不好每次让配置界面人员都去设置这个值。解决所以在挂载脚本的时候,判断当前物体是不是UI,如果是的话,就自动改AnimatorCullingMode值,代码如下: private void Reset() { if (m_Graph.IsV原创 2020-07-31 21:37:02 · 1151 阅读 · 0 评论 -
Unity 字符串按自然数排序之二
原因在 Unity 中提供了编辑器时的自然数排序(EditorUtility.NaturalCompare接口,见上篇《Unity 字符串按自然数排序》),但是运行时也需要进行自然数排序。解决新建IEnumerableEx.cs文件,代码如下:using System;using System.Collections.Generic;using System.Linq;using System.Text.RegularExpressions;public static class IEnu原创 2020-06-29 21:43:52 · 755 阅读 · 1 评论 -
Unity 去除自动添加的ACCESS_FINE_LOCATION权限
原因游戏莫名添加了ACCESS_FINE_LOCATION权限,查找Unity 官方手册https://docs.unity3d.com/Manual/android-manifest.htmlLocation APIs (such as LocationService) adds ACCESS_FINE_LOCATION解决工程里并没有使用到LocationService服务,搜索工程发现是Input.location返回了这个服务,而这个是tolua暴露给lua使用的接口,但正常用不到,所以原创 2020-05-31 17:42:29 · 2709 阅读 · 0 评论 -
Unity Live2D Mask功能失效的解决
在 Unity 中使用 Live2D 来进行动态角色的显示,遇到过当游戏进行一段时间后,角色的眼球随机消失不显示。原创 2020-04-29 21:06:18 · 2372 阅读 · 0 评论 -
Unity 不能在节点隐藏的时候更改子节点的父对象
在 Unity 中使用物体池,在父节点进行隐藏的时候,把子物体回归到池里,即重设父对象,但此时 Unity 会报错原创 2020-03-31 13:57:43 · 3451 阅读 · 0 评论 -
Unity 动态加载第三方开发调试库
在游戏中加入第三方的开发调试库,但不想默认打包进游戏,只在不同打包选项时,才进行附加上去,然后在游戏里进行动态加载。原创 2020-02-22 21:37:02 · 1390 阅读 · 0 评论 -
Unity 使用多线程来写日志文件
目的自动写日志文件功能,但是不能影响游戏性能,故使用多线程来写日志。源码/// <summary>/// 日志文件模块,使用多线程来进行写日志文件/// </summary>public class LogFileModule{ private static LogFileModule sLogFileModule; /// <sum...原创 2020-01-22 17:42:14 · 1595 阅读 · 0 评论 -
Unity 外部 DLL 无法引用 TextMeshPro
问题创建 C# DLL 库来让 Unity 进行引用,但是自建的库需要引用到 TextMeshPro DLL,而在 Unity 2018 里,TextMeshPro 就以源码的形式来存放的,路径在Library\PackageCache,其 DLL 路径在Library\ScriptAssemblies里,将Unity.TextMeshPro.dll来进行引用的话,会出现调用TextMeshP...原创 2019-12-31 19:38:36 · 2481 阅读 · 6 评论 -
Unity TextMeshPro DynamicText 动态文本组件
Unity-TextMeshPro-DynamicTextTextMeshPro DynamicText 动态文本组件,动态生成当前界面所需要的字体图集。原理基于TextMeshPro1.4.1 版本,收集当前显示所需的动态文本,利用font.TryAddCharacters接口进行生成字体图集。使用场景适用于静态字体 + 动态字体结合使用组件TextMeshProUGUI_Dy...原创 2019-11-30 14:54:27 · 4846 阅读 · 0 评论 -
Unity 获取手机键盘弹出高度
目的在手机上进行聊天时,键盘弹起会盖住聊天窗口,所以需要键盘弹起的时候,将界面也进行上移。解决安卓 publicint GetKeyboardHeight() { using (var unityClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer")) { var uni...原创 2019-10-31 20:19:28 · 5455 阅读 · 4 评论 -
Unity DF-GUI 中文输入以及自动换行
在使用Daikon Forge GUI过程中,发现dfTextbox编辑框无法输入中文,dfLabel和dfRichTextLabel文本控件中文无法自动换行。对源代码进行了更改,以便支持中文。不同版本可能更改的地方会不同,这边的版本为Daikon Forge GUI 1.0.15,Unity 4.3.1。dfTextbox中文输入当前无法输入中文,是因为没有开启Input.原创 2014-04-24 18:40:51 · 15018 阅读 · 2 评论 -
Unity MVC框架 StrangeIoC
StrangeIoC是一个超轻量级和高度可扩展的控制反转(IoC)框架,专门为C#和Unity编写。项目地址:https://github.com/strangeioc/strangeioc文档地址:http://strangeioc.github.io/strangeioc/TheBigStrangeHowTo.html一些术语:http://strangeioc.git原创 2014-05-21 18:39:16 · 26004 阅读 · 3 评论 -
Unity 捕获IronPython脚本错误
捕获的方法摘自《IronPython in Action》一书,代码如下:12345678910111213141516171819202122232425262728293031323334353637383940原创 2014-06-30 22:02:32 · 3674 阅读 · 0 评论 -
Unity原厂讲师大解密
Asset Bundle工作流程及人物換裝實例 - 劉剛Unity內部的資源有兩種(斯斯有兩種?):Resources:有10年歷史,儘量用Asset BundleAsset Bundle:暱稱AB,現今Unity處理資源的中心AB選項的差異透過Web Player下載Asset Bundle的Cache需要收費,在iOS,Android的Cache不需收費。--->手持遊戲卯转载 2014-08-19 16:16:10 · 5931 阅读 · 0 评论 -
Unity 查看所有GUI默认样式
使用默认的一些GUI样式,可以让编辑器扩展外观更佳。Unity自带有很多样式,当要使用这些样式时,只要指定其样式名即可。所有的样式名称,可以写个脚本遍历出来,另外可以将其样式效果也一并展现出来。这一点已经有插件实现了,即:Editor Style Viewer(https://www.assetstore.unity3d.com/en/#!/content/3282)查看器代码如下:原创 2014-09-15 20:34:37 · 11868 阅读 · 3 评论 -
Unity 脚本生命周期流程图
Unity 5.6 版本Unity 2017.4渲染OnPreCull:在相机剔除场景之前调用此函数。相机可见的对象取决于剔除。OnPreCull 函数调用发生在剔除之前。 OnBecameVisible/OnBecameInvisible:在对象对于相机可见/不可见时调用此函数。 OnWillRenderObject:如果对象可见,则为每个相机调用一次此函数。...翻译 2014-09-16 20:57:31 · 85485 阅读 · 1 评论 -
2014Unity亚洲开发者大会会议简录之技术篇
拖公司的福,有幸去了一趟北京参加了一场Unity3D的交流盛宴,在为期两天的时间内,不仅有着技术上收获,也有心灵上的震撼。现在先来说说技术方面的一些比较重要的知识,但是会跳过Unity3D后续版本的一些新功能介绍,比如新的GUI、动画系统的加强、以及新的AssetBundle打包工具。因为等之后版本出来后,自然会有更加详细的文档以及说明出来。转载 2014-10-21 19:29:39 · 4605 阅读 · 2 评论 -
台北Unity开发者研讨会 笔记
說明本文單純只是筆記,若有筆誤敬請見諒。相關參考連結你必須知道的Unity引擎知識Unity Asia Bootcamp 台北場 – 線上觀看Unity 今日首次在台舉辦亞洲開發者研討會 – 巴哈姆特Unity Shader System Introduction (Slide)Unity 開發者論壇-台北場 (Unity ASIA BOOTCAMP TOUR TAIPEI )研討會獨家專訪:Unity 教育認證與台灣高等教育的深度對談 | Unity IN | 社群✕媒體✕平臺Uni转载 2014-08-20 23:21:02 · 2965 阅读 · 2 评论 -
Unity MeshBaker 合并网格和材质
MeshBaker 能够合并网格和材质,达到减少 Draw Calls 的目的。官网地址:http://www.digitalopus.ca/site/mesh-baker/Asset Store地址:https://www.assetstore.unity3d.com/en/#!/content/5017原创 2014-11-21 12:39:45 · 25582 阅读 · 0 评论 -
Unity MegaFiers 顶点动画
使用 MegaFiers 插件,可以使得Unity支持顶点动画的播放。官方视频教程如下:在这里简单测试使用下,环境如下:Blender 2.72Unity 4.5.4MegaFiers 2.74在这里简单测试使用下,环境如下:Blender 2.72Unity 4.5.4MegaFiers 2.74创建物体和动画首先打开Blender,默认会含有一个立方体,下面对这个立方体制作一个简单动画,让其在1~100帧做旋转,101原创 2014-11-13 12:58:52 · 21185 阅读 · 9 评论 -
Unity Ferr2D 地形工具
Ferr2D 地形工具可以让你快速地创建一个2D关卡。非瓦片集,也无需放置大量的对象,不必手动调整碰撞器。只需选取或创建地形材质,然后建立一条道路!边缘自动切换纹理,碰撞器自动创建!官网地址:http://ferrlib.com/page/Ferr2D_Terrain_ToolAssert Store地址:https://www.assetstore.unity3d.com/en/#!/content/11653当前版本:1.0.8原创 2014-12-02 13:26:31 · 8820 阅读 · 0 评论 -
Unity 导出切片精灵
假设有一张png/tga图集,导入到Unity,放置目录"Assets/Resources/UI"(UI文件夹可替换成其他的,重要的是要在"Assets/Resources/"路径下),默认为如下设置:为了可以使用Unity自带的精灵切割,要将纹理类型改成"Sprite","Sprite Mode"改成"Multiple","Format"改成"Truecolor",点击"Appl原创 2014-08-26 12:40:28 · 21191 阅读 · 5 评论 -
Unity 提取游戏资源之ktx转换
从雨松的博文《Unity3D研究院之mac上从.ipa中提取unity3D游戏资源(六十六)》可以学到提取Unity的游戏资源,其中有用到一个工具:PVRTexTool因为这个工具的官网不好下载,故将其上传到CSDN,下载地址:http://download.csdn.net/detail/akof1314/7660209提取出来的资源,其中的ktx资源,用原创 2014-07-21 18:46:06 · 23650 阅读 · 7 评论 -
Unity ShoeBox Extract Sprites 到 Unity 格式
为一张透明的图片进行切割可以使用 ShoeBox 的 Extract Sprites 功能,将图片拖动到 Extract Sprites 功能图标上,就会自动切割好图片,如下图所示:点击 Settings 可以进行详细设置,这里将 Clusters Merge Sub Items 设为 false,不合并子项,将 File Name 改成 sli原创 2015-02-15 12:18:43 · 3345 阅读 · 0 评论 -
Unity 4.3 制作一个2D横版射击游戏
这是一个横版射击游戏。教程来自:http://pixelnest.io/tutorials/2d-game-unity/ 中文版教程:http://www.litpo.com/category/易学的教程/教程文章已经详细地介绍实现过程,这里就不再复述,只做一些简单的笔记记录,以供备忘。1.创建第一个场景新建工程。接着在"Project"面板上创建如下文件夹:原创 2014-04-09 12:47:53 · 83956 阅读 · 33 评论 -
Unity 4.3 制作一个2D横版射击游戏(2)
在上一篇《Unity 4.3 制作一个2D横版射击游戏》时,已经完成一个基本的射击游戏了。在这一篇将继续完善。1.视差卷轴效果为了达到这种视差卷轴的效果,可以让背景层以不同的速度进行移动,越远的层,移动地越慢。如果操作得当,这可以造成深度的错觉,这将很酷,又是可以容易做到的效果。在这里存在两个滚动:主角随着摄像机向前推进背景元素除了摄像机的移动外,又以不原创 2014-04-09 13:05:19 · 30336 阅读 · 49 评论 -
Unity NGUI 描点控件的位移动画
要让一个描点的控件动画移动到一个Position,可以用TweenPosition,但是这个只能用在Position是固定的情况下,而且不能根据分辨率适配来进行移动。以NGUI自带的示例场景"Example 1 - Anchors"为例,假设要让"Left"移动到"Top Right",且不管任意分辨率都需要达到这个效果。这里的方法是修改TweenPosition代码,让其支持传入目标的Trans原创 2014-09-01 12:32:59 · 5205 阅读 · 0 评论 -
Unity 武器拖尾效果
Pocket RPG Weapon Trails 武器拖尾效果Asset Store地址:https://www.assetstore.unity3d.com/en/#!/content/2458CSDN资源地址:http://download.csdn.net/detail/akof1314/7610241截图:由于这个插件提供的AnimationCo原创 2014-07-09 19:25:25 · 40309 阅读 · 6 评论 -
Unity uGui RawImage 渲染小地图
制作类似 RPG 游戏时,可能会需要显示小地图。小地图的制作一种方式是用另一个摄像机来渲染到一张纹理上,实时显示到UI界面。以Unity 5.0 的 UI 系统为例:在地图正上方放置一个摄像机,设置其 Culling Mask,比如:Ground(地面)、MinimapSign(玩家怪物标识),创建一张 Render Texture,将 Target Texture 属性指向这张纹原创 2015-03-12 19:49:41 · 27117 阅读 · 3 评论