Unity刨根问底之小白成长之路
文章平均质量分 86
探索发现Unity的被忽视的使用技巧,吸取总结大神老司机的代码淬炼之道,如何在项目开始之前做好优化的准备。。。这些。。。我会与你一起探讨学习,哈哈哈!!!
天生爱赞美
我们只用技术说话,眼界决定境界,定位决定地位。。。
展开
-
【Unity】AssetBundle和AssetBundle Manager的使用和介绍(流程和依赖关系)
AssetBundle and the AssetBundle Manager介绍AssetBundle允许从本地或者远程服务器加载Assets资源,利用AssetBundles技术,Assets资源可以放在远程服务器上,这种技术增加了项目灵活性并且减少项目初始包的大小。本文介绍AssetBundles并且讨论一步一步的介绍怎么样使用它,怎样将资源打包到AssetBundle中,如何使用以及如何处翻译 2017-06-16 18:12:09 · 13393 阅读 · 1 评论 -
(2016)最新最好的Unity3D Github项目收集
重磅推荐:Github 热门 Unity Assets 查询:http://unitylist.com/browseList of best publicGitHub repositories:· Image effects collection – https://github.com/makoto-unity/OneStepEffects·原创 2016-11-29 13:55:01 · 5159 阅读 · 4 评论 -
【Unity】如何使用MD5加密方式传递资料
在实际专案中,如果需要用到资料传递,可以利用 MD5 来为资料进行加密,考虑到有些人还不会,下面就给大家介绍下Unity MD5 加密,一起来看看吧。原创 2017-04-10 15:57:37 · 2876 阅读 · 0 评论 -
【Unity】骨骼动画如何优化资源
一,背景最近发现项目的动画文件有点大,不光内存大,而且文件也很大,所以从这2个方面下手处理二,动画文件大小优化为了优化动画文件大小,我们可以先分析下文件,Ctrl+D将动画文件从FBX拷贝出来,文本打开,如下图:可以发现,动画文件基本上都是关键帧数据,分析后我们可以有以下的优化方法。1,减少骨骼:我们知道一个骨骼是有pos(x,y,z),rotation(x,y原创 2017-04-24 17:53:12 · 7192 阅读 · 0 评论 -
【Unity+Lua】实测如何性能优化(Lua和C#交互篇)
前言在看了uwa之前发布的《Unity项目常见Lua解决方案性能比较》,决定动手写一篇关于lua+unity方案的性能优化文。整合lua是目前最强大的unity热更新方案,毕竟这是唯一可以支持ios热更新的办法。然而作为一个重度ulua用户,我们踩过了很多的坑才将ulua上升到一个可以在项目中大规模使用的状态。事实上即使到现在lua+unity的方案仍不能轻易的原创 2017-05-03 16:57:45 · 8030 阅读 · 2 评论 -
【Unity】5.X灯光烘焙与4.X在实际应用中的区别和注意事项
一、 先说说 Unity4.X 烘焙面板里常用的参数Quality 烘焙质量一般会选择高Bounces 反弹 这个值一般选 1,如果选 2,烘焙的时间会增长 50%左右,所以设置这个值要谨慎。Sky Light Intensity 天空光强度 这个一般我也不会设置的太高Bounce Boost 反弹增强,同一单位面积内增大光的反射数量,相比较来说,这个值增大会直接影响渲染时间。Bounce Int原创 2017-06-16 17:24:07 · 1081 阅读 · 0 评论 -
【Unity】内存泄漏危害及处理方式(腾讯WeTest分析使用)
WeTest导读本文通过对内存泄漏(what)及其危害性(why)的介绍,引出在Unity环境下定位和修复内存泄漏的方法和工具(how)。最后提出了一些避免泄漏的方法与建议。在之前推送的文章《内存是手游的硬伤——腾讯游戏谈Unity游戏Mono内存管理及泄漏问题》中,已经对腾讯游戏在Unity游戏开发过程中常见的Mono内存管理问题进行了介绍,收到了很多用户的反馈,希望能够更全面的介绍关于unit原创 2017-06-16 18:07:12 · 3254 阅读 · 1 评论 -
[Unity]Ray射线物理检测碰撞和LayerMask的使用
射线:射线是3D世界中一个点向一个方向发射的一条无终点的线,在发射轨迹中与其他物体发生碰撞时,它将停止发射 。用途:在unity中射线应用范围比较广, 多用于碰撞检测(如:子弹飞行是否击中目标)、角色移动 等。相关API:1、Ray Camera.main.ScreenPointToRay(Vector3 pos) 返回一条射线Ray从摄像机到屏幕指定一个点2、Ray Camera.main.原创 2017-06-16 18:17:26 · 3548 阅读 · 0 评论 -
【Unity】简单聊天室功能的实现方法教程
由於有人問到如何建立聊天室所以利用 Unity 中內建的 Network 來簡易說明首先新增一個 Server.csusing UnityEngine; using System.Collections; public class Server : MonoBehaviour{ //The number of allowed incoming connection原创 2017-04-10 14:08:54 · 6084 阅读 · 0 评论 -
【Unity】多平台自定义宏和Scripting Define Symbols的使用
API地址:http://docs.unity3d.com/Documentation/Manual/PlatformDependentCompilation.html平台定义UNITY_EDITOR 编辑器调用。UNITY_STANDALONE_OSX 专门为Mac OS(包括Universal,PPC和Intelarchitectures)平台的定义。UNITY原创 2017-03-27 10:45:45 · 14257 阅读 · 0 评论 -
【Unity】防反编译之windows平台加密dll
功能取决于需求,在实现这功能之前,却有一个小小的插曲,有同学认为,并不需要去实现游戏加密,再怎样也会被破解,何必浪费精力。虽然这样说,但是我们所做的加密至少也会增加一点破解成本,不会让我们辛苦写的代码随意被人恶意修改。下面就看看unity在windows平台中防反编译加密dll的实现步骤吧,unity在打包后,会将所有的代码打进一个Assembly-CSharp.dll的文件里面,通过这个文件原创 2017-04-10 14:01:59 · 8852 阅读 · 9 评论 -
【Unity】简单的分数排行榜功能实现(Web数据库)
這篇文章中有使用到的工具有:XAMPP:建立排行榜所需資料庫NetBeans:撰寫 PHP 表單部分Unity:撰寫客戶端發送請求教學中所使用的 Username 為 root是 MySQL 中預設的使用者帳號,也是權限最高的帳號因為撰寫教學所以在這裡直接使用 root建議實際撰寫時使用另外建立的使用者帳號防止被駭客攻擊先使用 MySQL 建立資料庫及資原创 2017-04-10 14:17:00 · 6828 阅读 · 2 评论 -
【Unity】开发WebGL内存概念详解和遇到的问题
自加入unity WebGL平台以来,Unity的开发团队就一直致力于优化WebGL的内存消耗。我们已经在Unity使用手册上有对于WebGL内存管理的详尽分析,甚至在Unite Europe 2015与Unite Boston 2015两届大会上,也有专题对其进行深入的讲解。然而,这方面的内容依旧是用户讨论的热门话题,因此我们意识到应当分享更多。希望本文能回答一些被频繁咨询的问题。U原创 2017-03-01 16:47:50 · 16381 阅读 · 2 评论 -
Unity中常用的几种设计模式
23种设计模式,实在是太多了,而且其中有一些看着还貌似差不多,让人很费解,好不容易理解了每一种设计模式的含义,并且看了一堆伪代码之后,高高兴兴的合上了书本去玩几把LOL,赢了几把之后脑袋里关于那23种设计模式的概念就剩下80%了,然后接下来的每日工作中,基本写代码的时候也用不到啊!老板催着让你做功能,你就还哪里记得去使用设计模式啊,就开始乱写吧,日复一日,23种设计模式基本就和你拜拜了,再见了。原创 2016-10-26 09:42:39 · 21420 阅读 · 1 评论 -
Unity中什么情况下适用静态变量
下面的示例解释了为Unity3D引擎编写脚本的时候如何来使用静态变量.本文示例的脚本使用C#编写,同样的适用于javascript。 在深入主题之前,必须要清楚地是我们应该尽量避免使用静态变量,有大量的缘由可以很容易在网上找到.大部分时候使用单例更好。了解了上面的东西之后,这里有一个对静态变量的简单定义:它们是属于类的变量,不属于对象或类创建。这意味着静态变量始终保持同样的原创 2016-10-26 17:58:44 · 5784 阅读 · 0 评论 -
Unity中surfaceShader的处理机制和finalColor
Unity Surface Shader的背后隐藏着比较神秘的机制,之所以说神秘,是因为不了解,了解了就不神秘,Unity Surface Shader在Unity 3.0的时候被开放给公众使用,但是貌似只能从官网的doc里面去了解一知半解,似乎在我们的项目里面没有怎么用到它。虽然它比较神秘,但是我们可以通过Unity来查看生成的CG代码,实际上Surface Shader是封装了CG语言,隐藏了原创 2016-10-27 14:21:29 · 4288 阅读 · 0 评论 -
unity socket编程过程
一、第一步开始连接1、创建socketprivate Socket socket;socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);2、创建ip和端口号IPAddress address = IPAddress.Parse (“192.168.1.1”);原创 2016-11-01 16:02:38 · 3616 阅读 · 3 评论 -
Unity编辑器扩展工具Shader Forge和Behavior Designer(行为树)和 Cinema Director
Shader Forge相信Shader Forge大家都有耳闻,它的厉害之处在于将着色器的编写过程可视化。Shader Forge是一款基于节点的着色器编辑器,开发者只需在编辑器中拖拽自己需要的效果进行组合,无需编写代码即可实现炫酷的着色器特效,并且支持实时预览着色器效果。Shader Forge使用起来也很方便,首先依次点击Windows > Shader Fo转载 2016-11-29 13:35:17 · 2427 阅读 · 0 评论 -
【Unity】中如何通过GPS获取设备经纬度(测试脚本)
在游戏开发中需要使用gps获取经纬度坐标定位玩家的当前位置,那么在开发过程中这个功能容不容易实现呢?下面就给大家介绍下Unity中获取设备经纬度的方法,一起来看看吧。 Unity使用GPS 的API 在unity的官方文档中,与设备定位(GPS经纬度、水平精度等等)相关的API,目前我只找到两个:LocationService 和 LocationInf原创 2017-02-22 17:24:51 · 3630 阅读 · 1 评论 -
【Unity】 WebGL开发中的内存分配问题(分析Unity堆数据)
对比了WebGL及其它平台内存的工作方式。我们给出的建议是Unity堆应越小越好,同时也强调了一个事实,即浏览器中还存在其他类型的内存开销。本文将深入探讨Unity堆,并根据实际数据来减少Unity堆的大小,而不再是通过不停地调试和试错来达到这一目的。下面就来看看Unity堆的定义、原理以及如何进行Unity堆内存分析。Unity堆是什么?首先要明白,Unity堆和浏览器堆原创 2017-03-01 17:00:43 · 10200 阅读 · 0 评论 -
【Unity】mvcs中StrangeIoc框架的概念和使用方法汇总(详尽版)
最近想项目中需要使用这个架构 因此 上网看了很多资料摸索 但是对于初学者来说大多数的资料不是那么容易理解 而且文档也是英文的阅读起来有点吃力 所以记录一下自己阅读的过程 方便以后翻阅和跟我一样的新人学习其中也借鉴了一些前辈的资料 如有反感请联系我 立马进行修改 谢谢文档坐标 http://strangeioc.github.io/strangeioc/TheBigStr原创 2017-02-21 17:40:01 · 9404 阅读 · 1 评论 -
【Unity】中GC优化XLua下的各种值类型
前言Unity下的C#GC Alloc(下面简称gc)是个大问题,而嵌入一个动态类型的Lua后,它们之间的交互很容易就产生gc,各种Lua方案也把这作为性能优化的重点。这些优化说穿了其实不复杂。元凶在这里先看看这两个函数123456789intinc1(inti){ returni +原创 2017-02-17 15:35:21 · 5454 阅读 · 1 评论 -
【Unity】通过实时记录模拟时间倒退效果回放
有一些游戏提供了回退的功能,那么在游戏开发中如何实现时间倒退这个效果呢,相信会有很多人想知道,为此下面就给大家介绍下实现时间倒退效果的方法,一起来看看吧。 一个简单的思路就是用Stack来记录物体的Position和Rotation,当需要时间回退的时候就Pop出来,赋值到物体上。不过为了可以进行拓展,比如只能回退到某段时间内的,而不是一下子回退到最开始的地方,我们需要剔除太原创 2017-02-16 18:00:43 · 4402 阅读 · 2 评论 -
【Unity】游戏开发过程中的前后台切换技术
在有些场景中游戏是需要从前台切换到后台运行的,那么在开发过程中需要如何去实现这个功能呢,为了帮助大家,下面就给大家介绍下退后台的方法,不会的就一起来看看吧。 //simulateSwitchToBackground.cs123456789101112原创 2017-02-16 17:29:37 · 8241 阅读 · 1 评论 -
【Unity】 ios游戏开发中登陆 GameCenter的问题和脚本
想通过Unity 登录ios GameCenter,需要借助unity自带的Social.localUser方法调用来实现,鉴于有些开发者没有过这方面的经验,下面就给大家介绍下成功登陆进ios GameCenter的方法,想看的可以学习一下。 下面是代码实现:123456789原创 2017-02-16 17:33:01 · 3957 阅读 · 1 评论 -
【Unity】中实现微信、QQ、微博帐号登录(Android环境)(官方SDK)
对于一些没有过安卓开发经验的开发者来说,为了实现安卓第三方登陆肯定是费尽了脑汁,不知道从何着手解决,为了让开发者少走弯路,下面就给大家介绍下Unity中使用官方SDK实现微信、QQ、微博帐号登录的方法,一起来看看吧。一、新建安卓工程并导入jar文件 注意写好自己的包名,微信登录和微博登录都要用到包名获取签名,把获取到的签名上传到开放平台。 填好包名后一直点next就可以了,点击fi原创 2017-02-16 17:38:28 · 6726 阅读 · 1 评论 -
【Unity3D】中如何分配内存占用(解决内存占用过大问题)
最近网友通过网站搜索Unity3D在手机及其他平台下占用内存太大. 这里写下关于Unity3D对于内存的管理与优化.Unity3D 里有两种动态加载机制:一个是Resources.Load,另外一个通过AssetBundle,其实两者区别不大。 Resources.Load就是从一个缺省打进程序包里的AssetBundle里加载资源,而一般AssetBundle文件需要你自己创建,运行时原创 2017-02-10 18:23:49 · 9868 阅读 · 0 评论 -
【Unity】制作手游的帧同步时遇到的问题
网络游戏的同步可以做的很简单,也可以做的很复杂。简单来说就是通过Http或者Socket来跟服务器同步数据。而如果往复杂了说,可以有p2p、帧同步、航位预测等等高级课题可以研究。 因为我们的项目需求----几百个独立单位的实时同步(带pvp的rts),所以研究了下帧同步。不过后来发现它其实有很多问题,所以具体如何还要看其他同事的研究成果。以我个人来说,修改游戏方案反而是最合理的解原创 2017-02-10 18:28:50 · 4566 阅读 · 0 评论 -
【Unity3D】Generic 动画中 Root Motion的概念和使用
Unity3D 的 Mecanim 动画系统可以直接复用 3DS MAX 中制作的动画文件中的位移,这个就是通过 applyRootMotion 来达成的,我们只需要在使用 Animator 控制动画播放的同时,设置 Animator 的 applyRootMotion 字段为 True 就 OK 了。那么怎么来利用这个特性达成我们想要的一些效果呢?这个 applyRootMotion 到原创 2017-02-10 18:32:31 · 7785 阅读 · 1 评论 -
【unity】开发android游戏android SDK和Java JDK
1,下载安装Java的JDK:http://www.oracle.com/technetwork/java/javase/downloads/index.html (JDK中,包含JRE)如果是64位的系统,推荐安装64位的java。2,下载Android的SDK:注意,Android 有两种方式:一种是Android stu原创 2016-11-30 14:57:40 · 10452 阅读 · 0 评论 -
【Unity】中如何统一管理回调函数(利用观察者模式)
这次的内容有点类似设计模式里的观察者模式。但是和常规意义上的观察者模式也不是完全一致,所以各位就不要咬文嚼字啦!咦?设计模式?!不懂!没关系,说不定你以前就用过。开场白我们来想象一个场景。在加载一个模型时,你需要从网上下载,但是你并不知道下载需要花费多少时间。你所知道的是,当下载完成后,就可以把模型放在特定位置上,开始游戏。那么,我们怎样才能判断下载完成呢?一个原创 2017-02-09 18:33:09 · 2015 阅读 · 0 评论 -
【Unity3D】Android和ios真机调试测Profiler
U3D中的Profile也是可以直接在链接安卓设备运行游戏下查看的,导出真机链接U3D的Profile看数据,这样能更好的测试具体原因。大概看了下官方的做法,看了几张帖子顺带把做法记录下来。参考:http://docs.unity3d.com/Documentation/Manual/Profiler.html用安卓真机调测Profile的数据,其实就两种方法,WIFI和ADB的方式。原创 2016-12-05 16:17:04 · 14932 阅读 · 0 评论 -
[Unity3D]UGUI分辨率自适应的组件和方法
UGUI分辨率自适应随着游戏设备越来越多,屏幕的分辨率也越来越多。而针对不同的屏幕分辨率,制作不同的素材是不现实的,所以就需要我们提供一套分辨率自适应的机制,来适配不同屏幕分辨率的设备。这篇博客就来介绍一下UGUI提供的分辨率自适应的机制。游戏中的分辨率自适应主要包括两部分:一是在不同尺寸的屏幕下,整体缩放比例的计算方式;二是在不同比例(宽高比)的屏幕下,UI控件所处的位置关系原创 2016-12-05 17:39:41 · 18339 阅读 · 0 评论 -
【Unity】优化UGUI 滚动条ScrollRect(高效复用)
最近忙于性能优化,深切体会到二八法则真是指导高(tou)效(lan)工作的有力武器。这个礼拜花了几天解决了一个实际问题:UGUI的ScrollRect加载太多物体的时候,第一次弹出界面会非常卡顿,而且不在界面里的内容依然会参与绘制(毫无意义的浪费…)。ChangeLogv1.03 终于支持了ScrollBar,支持直接创建v1.02 Bug Fixes,无尽模式v1.01原创 2016-12-06 10:28:44 · 33630 阅读 · 22 评论 -
【Unity3D】图片纹理压缩方式,干货走起!
Unity3D引擎对纹理的处理是智能的:不论你放入的是PNG,PSD还是TGA,它们都会被自动转换成Unity自己的Texture2D格式。 在Texture2D的设置选项中,你可以针对不同的平台,设置不同的压缩格式,如IOS设置成PVRTC4,Android平台设置成RGBA16等。嗯,非常的智能。 但是,在一些进阶的使用中,一些情况是难以满足的。比如,我们NGUI的图集中,原创 2017-02-07 16:09:27 · 16497 阅读 · 1 评论 -
解决【unity3d】播放视频的两种操作方式
想通过Unity3D播放游戏视频主要有两种方式。第一种是在游戏对象中播放,就好比在游戏世界中创建一个Plane面对象,摄像机直直的照射在这个面上。第二种是在GUI层面上播放视频。播放视频其实和贴图非常相像,因为播放视频用到的MovieTexture属于贴图Texture的子类,下面就给大家介绍下Unity中播放视频的这两种方式。 Unity支持的播放视原创 2017-01-06 13:50:05 · 5749 阅读 · 0 评论 -
【Unity】实现Android手机震动的sdk接口
想在Unity3D上开发一些功能,就必须要调用Android接口的函数去调用jar包中的函数,就拿Unity3D想实现手机震动效果这个来说吧,就要通过下面一系列步骤才能实现。简要说明:1、Android提供jar文件,xml文件,res目录,libs目录 2、通过AndroidJavaClass去调用Android函数 另外,这些功能只能在真机上运行!具体实现:Andr原创 2017-01-06 14:04:36 · 2886 阅读 · 2 评论 -
Unity3D代码混淆
Unity代码混淆方案内容提要:Unity引擎下的代码保护,由于Unity引擎的一些特殊性,实行起来较为复杂,在国内外业界并没有现成的方案。笔者通过在《QQ乐团》项目上的实际尝试,得出了一种具体可行,能够有效保护代码逻辑的方案。特此分享给关注Unity引擎的项目,希望能提供一些的参考。背景Unity引擎上的程序执行在Mono运行时上,使用Mono编译出的程序集格式与.NET标准一致。C原创 2016-11-28 16:01:11 · 3246 阅读 · 1 评论 -
Unity性能优化方法总结
一共9招。 1 资源分离打包与加载 游戏中会有很多地方使用同一份资源。比如,有些界面会共用同一份字体、同一张图集,有些场景会共用同一张贴图,有些会怪物使用同一个Animator,等等。可以在制作游戏安装包时将这些公用资源从其它资源中分离出来,单独打包。比如若资源A和B都引用了资源C,则将C分离出来单独打一个bundle。在游戏运行时,如果要加载A,则先加载C;之原创 2016-10-24 15:02:33 · 6057 阅读 · 1 评论 -
unity Profiler性能分析
A. WaitForTargetFPS: Vsync(垂直同步)功能所,即显示当前帧的CPU等待时间 B. Overhead: Profiler总体时间-所有单项的记录时间总和。用于记录尚不明确的时间消耗,以帮助进一步完善Profiler的统计。 C. Physics.Simulate: 当前帧物理模拟的CPU占用时间。原创 2016-10-22 13:22:15 · 775 阅读 · 0 评论