Unity
文章平均质量分 83
天生爱赞美
我们只用技术说话,眼界决定境界,定位决定地位。。。
展开
-
【Unity】ios平台导出Xoce项目打包成ipa过程(图文详尽版)
按照下面的步骤走,就可以打包成功,我不说各种原因,只讲操作步骤:简单粗暴!!!首先你得有一个苹果开发者账号。要是没有,就自己申请一个。注意:在创建app IDs 还有描述文件的时候,需要添加的是发布版本,就是ad hoc里面的版本,而不是简单的开发版本。如下图:(证书与描述文件都需要发布版本的)可以先忽略,一会在创建证书的时候再看1.创建一个ipaDemo工程。2.打开苹果开发者中心。网址 :ht原创 2017-07-18 17:31:32 · 12788 阅读 · 2 评论 -
【Unity】 WebGL开发中的内存分配问题(分析Unity堆数据)
对比了WebGL及其它平台内存的工作方式。我们给出的建议是Unity堆应越小越好,同时也强调了一个事实,即浏览器中还存在其他类型的内存开销。本文将深入探讨Unity堆,并根据实际数据来减少Unity堆的大小,而不再是通过不停地调试和试错来达到这一目的。下面就来看看Unity堆的定义、原理以及如何进行Unity堆内存分析。Unity堆是什么?首先要明白,Unity堆和浏览器堆原创 2017-03-01 17:00:43 · 10231 阅读 · 0 评论 -
【Unity】开发WebGL内存概念详解和遇到的问题
自加入unity WebGL平台以来,Unity的开发团队就一直致力于优化WebGL的内存消耗。我们已经在Unity使用手册上有对于WebGL内存管理的详尽分析,甚至在Unite Europe 2015与Unite Boston 2015两届大会上,也有专题对其进行深入的讲解。然而,这方面的内容依旧是用户讨论的热门话题,因此我们意识到应当分享更多。希望本文能回答一些被频繁咨询的问题。U原创 2017-03-01 16:47:50 · 16414 阅读 · 2 评论 -
【Unity】 ios游戏开发中登陆 GameCenter的问题和脚本
想通过Unity 登录ios GameCenter,需要借助unity自带的Social.localUser方法调用来实现,鉴于有些开发者没有过这方面的经验,下面就给大家介绍下成功登陆进ios GameCenter的方法,想看的可以学习一下。 下面是代码实现:123456789原创 2017-02-16 17:33:01 · 3976 阅读 · 1 评论 -
【Unity3D】Generic 动画中 Root Motion的概念和使用
Unity3D 的 Mecanim 动画系统可以直接复用 3DS MAX 中制作的动画文件中的位移,这个就是通过 applyRootMotion 来达成的,我们只需要在使用 Animator 控制动画播放的同时,设置 Animator 的 applyRootMotion 字段为 True 就 OK 了。那么怎么来利用这个特性达成我们想要的一些效果呢?这个 applyRootMotion 到原创 2017-02-10 18:32:31 · 7801 阅读 · 1 评论 -
【Unity】制作手游的帧同步时遇到的问题
网络游戏的同步可以做的很简单,也可以做的很复杂。简单来说就是通过Http或者Socket来跟服务器同步数据。而如果往复杂了说,可以有p2p、帧同步、航位预测等等高级课题可以研究。 因为我们的项目需求----几百个独立单位的实时同步(带pvp的rts),所以研究了下帧同步。不过后来发现它其实有很多问题,所以具体如何还要看其他同事的研究成果。以我个人来说,修改游戏方案反而是最合理的解原创 2017-02-10 18:28:50 · 4582 阅读 · 0 评论 -
【Unity3D】中如何分配内存占用(解决内存占用过大问题)
最近网友通过网站搜索Unity3D在手机及其他平台下占用内存太大. 这里写下关于Unity3D对于内存的管理与优化.Unity3D 里有两种动态加载机制:一个是Resources.Load,另外一个通过AssetBundle,其实两者区别不大。 Resources.Load就是从一个缺省打进程序包里的AssetBundle里加载资源,而一般AssetBundle文件需要你自己创建,运行时原创 2017-02-10 18:23:49 · 9893 阅读 · 0 评论 -
【Unity】中如何统一管理回调函数(利用观察者模式)
这次的内容有点类似设计模式里的观察者模式。但是和常规意义上的观察者模式也不是完全一致,所以各位就不要咬文嚼字啦!咦?设计模式?!不懂!没关系,说不定你以前就用过。开场白我们来想象一个场景。在加载一个模型时,你需要从网上下载,但是你并不知道下载需要花费多少时间。你所知道的是,当下载完成后,就可以把模型放在特定位置上,开始游戏。那么,我们怎样才能判断下载完成呢?一个原创 2017-02-09 18:33:09 · 2022 阅读 · 0 评论 -
【Unity】中GC优化XLua下的各种值类型
前言Unity下的C#GC Alloc(下面简称gc)是个大问题,而嵌入一个动态类型的Lua后,它们之间的交互很容易就产生gc,各种Lua方案也把这作为性能优化的重点。这些优化说穿了其实不复杂。元凶在这里先看看这两个函数123456789intinc1(inti){ returni +原创 2017-02-17 15:35:21 · 5467 阅读 · 1 评论 -
【Unity】通过实时记录模拟时间倒退效果回放
有一些游戏提供了回退的功能,那么在游戏开发中如何实现时间倒退这个效果呢,相信会有很多人想知道,为此下面就给大家介绍下实现时间倒退效果的方法,一起来看看吧。 一个简单的思路就是用Stack来记录物体的Position和Rotation,当需要时间回退的时候就Pop出来,赋值到物体上。不过为了可以进行拓展,比如只能回退到某段时间内的,而不是一下子回退到最开始的地方,我们需要剔除太原创 2017-02-16 18:00:43 · 4421 阅读 · 2 评论 -
【Unity】中实现微信、QQ、微博帐号登录(Android环境)(官方SDK)
对于一些没有过安卓开发经验的开发者来说,为了实现安卓第三方登陆肯定是费尽了脑汁,不知道从何着手解决,为了让开发者少走弯路,下面就给大家介绍下Unity中使用官方SDK实现微信、QQ、微博帐号登录的方法,一起来看看吧。一、新建安卓工程并导入jar文件 注意写好自己的包名,微信登录和微博登录都要用到包名获取签名,把获取到的签名上传到开放平台。 填好包名后一直点next就可以了,点击fi原创 2017-02-16 17:38:28 · 6757 阅读 · 1 评论 -
【Unity3D】图片纹理压缩方式,干货走起!
Unity3D引擎对纹理的处理是智能的:不论你放入的是PNG,PSD还是TGA,它们都会被自动转换成Unity自己的Texture2D格式。 在Texture2D的设置选项中,你可以针对不同的平台,设置不同的压缩格式,如IOS设置成PVRTC4,Android平台设置成RGBA16等。嗯,非常的智能。 但是,在一些进阶的使用中,一些情况是难以满足的。比如,我们NGUI的图集中,原创 2017-02-07 16:09:27 · 16520 阅读 · 1 评论 -
【Unity】实现Android手机震动的sdk接口
想在Unity3D上开发一些功能,就必须要调用Android接口的函数去调用jar包中的函数,就拿Unity3D想实现手机震动效果这个来说吧,就要通过下面一系列步骤才能实现。简要说明:1、Android提供jar文件,xml文件,res目录,libs目录 2、通过AndroidJavaClass去调用Android函数 另外,这些功能只能在真机上运行!具体实现:Andr原创 2017-01-06 14:04:36 · 2897 阅读 · 2 评论 -
解决【unity3d】播放视频的两种操作方式
想通过Unity3D播放游戏视频主要有两种方式。第一种是在游戏对象中播放,就好比在游戏世界中创建一个Plane面对象,摄像机直直的照射在这个面上。第二种是在GUI层面上播放视频。播放视频其实和贴图非常相像,因为播放视频用到的MovieTexture属于贴图Texture的子类,下面就给大家介绍下Unity中播放视频的这两种方式。 Unity支持的播放视原创 2017-01-06 13:50:05 · 5767 阅读 · 0 评论 -
Unity性能优化方法总结
一共9招。 1 资源分离打包与加载 游戏中会有很多地方使用同一份资源。比如,有些界面会共用同一份字体、同一张图集,有些场景会共用同一张贴图,有些会怪物使用同一个Animator,等等。可以在制作游戏安装包时将这些公用资源从其它资源中分离出来,单独打包。比如若资源A和B都引用了资源C,则将C分离出来单独打一个bundle。在游戏运行时,如果要加载A,则先加载C;之原创 2016-10-24 15:02:33 · 6071 阅读 · 1 评论 -
Unity资源处理机制(Assets/WWW/AssetBundle/...)读取和加载资源方式详解
Unity资源机制1、概述 本文意在阐述Unity资源机制相关的信息,以及一些关于个人的理解与试验结果。另外还会提及一些因机制问题可能会出现的异常以及处理建议。大部分机制信息来源于官方文档,另外为自我验证后的结果。 2、资源概述 Unity必须通过导入将所支持的资源序列化,生成AssetComponents后,才能被Unity使用。以下是Unity对As原创 2017-01-04 18:13:38 · 53525 阅读 · 12 评论 -
unity3D 编辑器扩展,MenuItem 和 ContextMenu 的用法和分析
官方也有一个文章,举了 MenuItem 类的一些使用方法,传送门: http://unity3d.com/cn/learn/tutorials/modules/intermediate/editor/menu-items首先是unity顶部菜单栏的一些用法,如图:注意:MenuItem是编辑器类,所以技能导入 using UnityEditor; 命名空间,且一般翻译 2017-01-04 10:26:56 · 3387 阅读 · 0 评论 -
Unity内存管理——对象池(Object-Pool)
Unity3D内存管理——对象池(Object Pool) 从一个简单的对象池类开始说起对象池背后的理念其实是非常简单的。我们将对象存储在一个池子中,当需要时在再次使用,而不是每次都实例化一个新的对象。池的最重要的特性,也就是对象池设计模式的本质是允许我们获取一个“新的”对象而不管它真的是一个新的对象还是循环使用的对象。该模式可以用以下简单的几行代码实现:public class翻译 2016-10-25 16:38:45 · 1196 阅读 · 0 评论 -
【Unity】mvcs中StrangeIoc框架的概念和使用方法汇总(详尽版)
最近想项目中需要使用这个架构 因此 上网看了很多资料摸索 但是对于初学者来说大多数的资料不是那么容易理解 而且文档也是英文的阅读起来有点吃力 所以记录一下自己阅读的过程 方便以后翻阅和跟我一样的新人学习其中也借鉴了一些前辈的资料 如有反感请联系我 立马进行修改 谢谢文档坐标 http://strangeioc.github.io/strangeioc/TheBigStr原创 2017-02-21 17:40:01 · 9427 阅读 · 1 评论 -
【Unity】中如何通过GPS获取设备经纬度(测试脚本)
在游戏开发中需要使用gps获取经纬度坐标定位玩家的当前位置,那么在开发过程中这个功能容不容易实现呢?下面就给大家介绍下Unity中获取设备经纬度的方法,一起来看看吧。 Unity使用GPS 的API 在unity的官方文档中,与设备定位(GPS经纬度、水平精度等等)相关的API,目前我只找到两个:LocationService 和 LocationInf原创 2017-02-22 17:24:51 · 3645 阅读 · 1 评论 -
【Unity】UI界面的热更新技术 FairyGUI的使用流程
需求环境 通常在项目中我们会使用MVC的方式去构建界面框架,而以往我们也会使用NGUI,UGUI,或者DaikonGUI等等方案去实现界面的搭建。 这些UI方案各有优点,也都适用于我们的工程,但在实际项目中,热更新的逻辑代码意味着游戏界面也需要热更新,如果能有一种界面架构可以实现界面与代码的分离,实现热更新,并且代码逻辑本身也能热更新,那么就再好不过了。 于是,原创 2017-07-19 17:11:51 · 11579 阅读 · 1 评论 -
【Unity】Effective C#观后感之提高Unity中C#代码质量的21条准则
我们知道,在C++领域,作为进阶阅读材料,必看的书是《Effective C++》。 而《Effective C#》之于C# ,是类似《Effective C++》之于C++一样的存在。这篇文章,将《Effective C# Second Edition》一书中适用于Unity游戏引擎里使用C#的经验之谈进行了提炼,总结成为21条(一开始总结的是22条,后来发现第22条也是.NET的特性,Unit原创 2017-07-19 17:01:54 · 6294 阅读 · 0 评论 -
【Unity】安装配置Python使用protobuf转换Excel表格数据并在unit中使用
前言: 之前使用NPOI插件编写的导表工具,其实就是直接将数据进行序列化,解析时还需要进行反序列化,步骤比较繁复,最近看到Google的一个开源的项目protobuf,不仅可以用于进行excel表格数据的导出,还能直接用于网络通信协议的定制。一、protobuf简介: protobuf是由google公司发布的一个开源的项目,是一款方便而又通用的数据传输协议。所以我们在原创 2017-07-18 17:16:42 · 5868 阅读 · 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 · 3569 阅读 · 0 评论 -
【Unity】AssetBundle和AssetBundle Manager的使用和介绍(流程和依赖关系)
AssetBundle and the AssetBundle Manager介绍AssetBundle允许从本地或者远程服务器加载Assets资源,利用AssetBundles技术,Assets资源可以放在远程服务器上,这种技术增加了项目灵活性并且减少项目初始包的大小。本文介绍AssetBundles并且讨论一步一步的介绍怎么样使用它,怎样将资源打包到AssetBundle中,如何使用以及如何处翻译 2017-06-16 18:12:09 · 13414 阅读 · 1 评论 -
【Unity】内存泄漏危害及处理方式(腾讯WeTest分析使用)
WeTest导读本文通过对内存泄漏(what)及其危害性(why)的介绍,引出在Unity环境下定位和修复内存泄漏的方法和工具(how)。最后提出了一些避免泄漏的方法与建议。在之前推送的文章《内存是手游的硬伤——腾讯游戏谈Unity游戏Mono内存管理及泄漏问题》中,已经对腾讯游戏在Unity游戏开发过程中常见的Mono内存管理问题进行了介绍,收到了很多用户的反馈,希望能够更全面的介绍关于unit原创 2017-06-16 18:07:12 · 3278 阅读 · 1 评论 -
【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 · 1101 阅读 · 0 评论 -
【Unity】ios平台IAP内购和沙箱测试流程详解(开发中遇到的坑)
Unity iOS内购思路:Unity调用iOS内购代码实现效果图:重要提示:测试一定要用沙盒账号,否则无效!流程这里就不重复写了,直接上截图 OC代码:IAPInterface(主要是实现Unity跟OC的IAP代码的一个交互作用,等于是一个中间桥梁)#import @interface IAPInt原创 2017-05-31 15:40:18 · 13295 阅读 · 0 评论 -
【Unity】骨骼动画如何优化资源
一,背景最近发现项目的动画文件有点大,不光内存大,而且文件也很大,所以从这2个方面下手处理二,动画文件大小优化为了优化动画文件大小,我们可以先分析下文件,Ctrl+D将动画文件从FBX拷贝出来,文本打开,如下图:可以发现,动画文件基本上都是关键帧数据,分析后我们可以有以下的优化方法。1,减少骨骼:我们知道一个骨骼是有pos(x,y,z),rotation(x,y原创 2017-04-24 17:53:12 · 7220 阅读 · 0 评论 -
【Unity+Lua】实测如何性能优化(Lua和C#交互篇)
前言在看了uwa之前发布的《Unity项目常见Lua解决方案性能比较》,决定动手写一篇关于lua+unity方案的性能优化文。整合lua是目前最强大的unity热更新方案,毕竟这是唯一可以支持ios热更新的办法。然而作为一个重度ulua用户,我们踩过了很多的坑才将ulua上升到一个可以在项目中大规模使用的状态。事实上即使到现在lua+unity的方案仍不能轻易的原创 2017-05-03 16:57:45 · 8060 阅读 · 2 评论 -
【Unity】游戏开发过程中的前后台切换技术
在有些场景中游戏是需要从前台切换到后台运行的,那么在开发过程中需要如何去实现这个功能呢,为了帮助大家,下面就给大家介绍下退后台的方法,不会的就一起来看看吧。 //simulateSwitchToBackground.cs123456789101112原创 2017-02-16 17:29:37 · 8273 阅读 · 1 评论 -
【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 · 14289 阅读 · 0 评论 -
【Unity】如何使用MD5加密方式传递资料
在实际专案中,如果需要用到资料传递,可以利用 MD5 来为资料进行加密,考虑到有些人还不会,下面就给大家介绍下Unity MD5 加密,一起来看看吧。原创 2017-04-10 15:57:37 · 2891 阅读 · 0 评论 -
【Unity】简单的分数排行榜功能实现(Web数据库)
這篇文章中有使用到的工具有:XAMPP:建立排行榜所需資料庫NetBeans:撰寫 PHP 表單部分Unity:撰寫客戶端發送請求教學中所使用的 Username 為 root是 MySQL 中預設的使用者帳號,也是權限最高的帳號因為撰寫教學所以在這裡直接使用 root建議實際撰寫時使用另外建立的使用者帳號防止被駭客攻擊先使用 MySQL 建立資料庫及資原创 2017-04-10 14:17:00 · 6843 阅读 · 2 评论 -
【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 · 6096 阅读 · 0 评论 -
【Unity】防反编译之windows平台加密dll
功能取决于需求,在实现这功能之前,却有一个小小的插曲,有同学认为,并不需要去实现游戏加密,再怎样也会被破解,何必浪费精力。虽然这样说,但是我们所做的加密至少也会增加一点破解成本,不会让我们辛苦写的代码随意被人恶意修改。下面就看看unity在windows平台中防反编译加密dll的实现步骤吧,unity在打包后,会将所有的代码打进一个Assembly-CSharp.dll的文件里面,通过这个文件原创 2017-04-10 14:01:59 · 8883 阅读 · 9 评论 -
Unity3D代码混淆
Unity代码混淆方案内容提要:Unity引擎下的代码保护,由于Unity引擎的一些特殊性,实行起来较为复杂,在国内外业界并没有现成的方案。笔者通过在《QQ乐团》项目上的实际尝试,得出了一种具体可行,能够有效保护代码逻辑的方案。特此分享给关注Unity引擎的项目,希望能提供一些的参考。背景Unity引擎上的程序执行在Mono运行时上,使用Mono编译出的程序集格式与.NET标准一致。C原创 2016-11-28 16:01:11 · 3262 阅读 · 1 评论 -
C#事件委托和回调的用法区别
事件包括:事件发送者、事件接收者和事件处理程序。关于事件,我们首要知道的是事件的发送者必须知道发送什么类型的事件,以及相关的事件参数。而事件的接收者必须了解其事件的处理方法必须使用的返回类型和参数事件的发送者和事件的接收者都只关注事件而不是对方,这样对象就只需考虑自己,而不用考虑其他对象。例如:足球运动员踢球射门时,产生一个击球事件,但他并不用关心守门员是谁,他只要原创 2016-11-28 15:56:53 · 1627 阅读 · 0 评论 -
unity Profiler性能分析
A. WaitForTargetFPS: Vsync(垂直同步)功能所,即显示当前帧的CPU等待时间 B. Overhead: Profiler总体时间-所有单项的记录时间总和。用于记录尚不明确的时间消耗,以帮助进一步完善Profiler的统计。 C. Physics.Simulate: 当前帧物理模拟的CPU占用时间。原创 2016-10-22 13:22:15 · 778 阅读 · 0 评论 -
Unity协程(Coroutine)之yield和迭代原理分析
协程其实就是一个IEnumerator(迭代器),IEnumerator 接口有两个方法 Current 和 MoveNext() ,前面介绍的 TaskManager 就是利用者两个方法对协程进行了管理,只有当MoveNext()返回 true时才可以访问 Current,否则会报错。迭代器方法运行到 yield return 语句时,会返回一个expression表达式并保留当前在代码中的位置。 当下次调用迭代器函数时执行从该位置重新启动。原创 2016-10-26 09:30:16 · 7571 阅读 · 0 评论