Unity 游戏开发
文章平均质量分 50
关于Unity游戏开发的各种心得体验
Dongo2
这个作者很懒,什么都没留下…
展开
-
WaitForSeconds 和 WaitForSecondsRealtime 一探究竟
WaitForSeconds 和 WaitForSecondsRealtime 一探究竟一:相同点等待xx时间后进行后续操作二:不同点受时间因子影响 WaitForSecondsRealtime 这个不会收到Time.Scale的影响,而WaitForSeconds会收到影响记时方式不同WaitForSeconds 对于同一个对象而言,无论多少次通过Corotuine调用都都会同一时间结束,也就是并行的效果WaitForSecondsRealtime 对于同一个对象而言,会以串行的方式结原创 2021-07-05 17:22:15 · 2522 阅读 · 0 评论 -
Unity多线程调用
写了一段废代码,不过以后可能有他的用处using System.Collections;using System.Collections.Generic;using System.Threading.Tasks;using Knight.Core;using UnityEngine;using UnityEngine.SceneManagement;public class TaskAsset : MonoBehaviour{ void Start() { .原创 2021-04-25 18:12:55 · 344 阅读 · 0 评论 -
Untiy中 Task 与多线程
结论:在Unity 中使用 Task 作为返回值并不会开启新的线程,调用方为主线程;如果是自己创建了Task 对象 即:new Task()则会新开辟一条线层进行处理。测试场景1: 使用两个异步函数进行修改同一个变量,同时在异步函数之后进行 Main Thread 的 Id ,代码如下using System.Collections;using System.Collections.Generic;using System.Threading;using System.Threading..原创 2021-04-24 10:57:03 · 2439 阅读 · 0 评论 -
Unity 变体探秘
起因:我们在打Bundle 的时候出现了同一个AB里面有相同文件名字的文件(虽然路径不同),具体报错如下:14:22:18 Building AssetBundle failed because hash collision was detected in the deterministic id generation.14:22:18 Conflict happened between Asset "Assets/Game/GameAsset/RofConfig/HMT/RofBonus.jso原创 2021-03-05 18:51:46 · 1314 阅读 · 0 评论 -
SVN Server Hook(Unity Meta File)
项目中老是有人漏提交meta文件,这里通过使用svn的hook强制提交meta文件,具体hook怎么写自行百度。这里提供一个笨但是有用的方法具体过程:编写pre-commit >>存放到对应svn服务器仓库中 >>使用编写pre-commit由于我们的服务器是windows下的,所以我这里使用了最简单的.exe进行编写hook文件,内容如下using System;using System.Collections.Generic;using System...原创 2020-09-08 18:14:38 · 742 阅读 · 0 评论 -
Unity 创建自定义Package
创建目录结构 Editor下和Runtime下添加AsmDef文件。并且Editor下的AsmDef文件依赖Runtime下的;Editor下的asmdef文件只用勾选Editor平台即可 package文件 绑定Manifest文件 "framework.test":"file../framework.test",...原创 2020-08-20 11:36:19 · 1319 阅读 · 0 评论 -
正则表达式语法
^ : 匹配第一个字符$ : 匹配最后一个字符[] : 匹配一位字符,这位字符可以是括号中的任何一个[1-9] : 匹配1-9 的范围内的字符[^1-9] :匹配1-9范围以外的字符+ : 前面的一位字符出现了1次或者多次* : 前面的一位字符出现了0次或者多次? : 前面的一位字符出现了0次或者1次{m} :前面的字符连续出现了m次{m,} :前面的字符连续出现了至少 m次{m,n} :前面的字符连续出现了 m -n 次\...原创 2020-07-28 18:28:23 · 881 阅读 · 0 评论 -
Windows Server 2008 搭建 FTP
设置完下面的内容再也不用使用QQ传文件到服务器上了第一:服务端开启IIS服务 创建站点绑定物理目录 上面两步在网上随便能找到,如果不会的可以在这里看下其他人做的视频地址第二:客户端使用FTP工具(WINSCP)进行链接我在使用的时候报错如下:Server sent passive reply with unroutable address. Using server address instead可以使用如下的方法改下配置即可:以后传文件直接拖过去就好了...原创 2020-07-24 18:43:17 · 209 阅读 · 0 评论 -
C# 字典转List
public static class DictionaryExt{ public static List<U> ConvertValuesToList<T, U>(this Dictionary<T, U> dict) { List<U> result = new List<U>(); ...原创 2020-01-16 21:04:53 · 2390 阅读 · 0 评论 -
APK 模拟器调试相关内容
直接Build进模拟器执行adb命令连接 adb connect 127.0.0.1:7555(必须) 刷新找到模拟器的位置 Build And Run原创 2019-11-21 14:42:40 · 317 阅读 · 0 评论 -
<1> 在Unity3d 自动查找表格错误
在游戏开发中,有很多的配置表格,需要策划反复的填写,很多表格的列 也就是对应程序的某个属性,是有要求的,比如程序需要的可能是个id的数字型,而可能被策划不填写或者填成了一个字符串类型的那么程序就会报错提示类型转换错误,如此等等,但是作为一个策划我相信他们是没法知道是哪个表格错了(虽然程序很容易看出来,哈哈,原谅策划大大们吧,他们只会策划,这就要求我们程序出马了,提示一个sb都能看懂的文字) 思原创 2015-04-07 14:11:56 · 966 阅读 · 0 评论 -
<2> unity3d 分包与上google play 之具体实战
上一篇已经把准备工作已经做好了。现在开始实战了。激动么么哒有没有!第一步: 下载插件包 (这里收了1分,如果实在没有资源分的可以@我)http://download.csdn.net/detail/pdw_jsp/8612601 下载以后的内容如下图所示 第二步: 设置插件中必须的内容原创 2015-04-20 14:32:01 · 10757 阅读 · 7 评论 -
unity3d - new 不出的单例
可能习惯了写单例的朋友,或者常规的单例模式 会这样做private static Single instance;public static Single Instance(){if (instance == null) {instance = new Single();}return instance;}但是当你继承了MonoBehavio原创 2015-11-19 11:16:51 · 11381 阅读 · 0 评论 -
unity3d 小心Instantiate的名字非你所要
这是一个细节问题,在某sdk中的回调填写的是 A (object) 的名字,但是当我们Instantiate后如果不留意会出现 A(clone)的字样,而sdk这边一般是按照名字自己回调UnitysendMessage这样的会出现调用不到的情况至于去掉这个(clone)方法就很多了比如GameObject Aclone=(GameObject)Instantiate原创 2015-11-19 11:53:30 · 5860 阅读 · 1 评论 -
unity3d apk 重签名帮助提审
最近遇到个问题,apk发给第三方进行一些处理,比如加密,加一些其他的玩意,然后他把我们的keystore给更换了,导致我们这边无法提审了、作为程序员我们只能相信我们自己去重新使用我们的提审时用的keystore了网上找了些文章,基本上都说到了个大概,但是操作起来没有一个可以使用的。最后还是给我试出来了第一步生成 keystool (如果有keystore的无视这一步)第原创 2015-11-20 16:54:06 · 2819 阅读 · 0 评论 -
Unity3d 资源断点下载
之前写过一系列Unity3d的上 googleplay 与分包操作,但是在实际应用中你会发现,由于资源包(.obb)可能过大,然后移动网络又可能出于不稳定状态,(2b公司的网络都是这样 的) ,那么你的下载 很可能一天都下不完(因为由于没有一次完整下载过 所以 重复下载)。之前查过一些文章来实现这个功能,但是unity的www根本不支持断点续传的功能,而是一个阻塞的(要么得到我的全部,要么啥都原创 2015-12-02 09:49:09 · 2945 阅读 · 1 评论 -
Unity3d 工具打包完 自动上传到FTP服务器
这个故事是这样开始的~~我们游戏的平台包有好几十个~(没办法游戏太牛逼了),然后每个平台的sdk都需要去不断的测试的,我们内部开发过一款工具用来自动批处理打包untiy - apk,这样可以节省很多时间去等待打包的过程。稍微计算一下 一个apk包(大小250M+)的时间是 10分钟*40个以上,如果让人等着打包的话就!~咳咳了打完了包需要上传ftp服务器给到测试部进行测试,而目前我们的原创 2015-12-16 16:42:54 · 7607 阅读 · 1 评论 -
Unity dll 热更新 前奏
之前研究了一段lua 的热更新,说实在话,如果不是对lua有很强的能力的,要是去做lua会吐血的,特别是是在unity中做,而且ulua的实现方式也是并不能做到想怎么更久怎么更。因为有wrap的东西在,如果你有新的文件需要wrap那么你的动态更新可以宣布没啥用了。鉴于项目的时间,人力物力的限制,我准备考虑放弃lua了。毕竟我主张的是开发需要快乐的。不希望lua的print来进行调试原创 2016-02-19 00:11:45 · 1948 阅读 · 0 评论 -
Unity dll 热更新 基础框架
昨晚上有了dll 热更新的想法,今天做了一天的实验,也遇到些坑,这里总结下工作环境: U3D5.3.2 + vs2010 +mono下面要模拟的是一个登陆环境,点击按钮,就加载一个iGameObjec的Item, Item 上得到更新的文本内容。具体如下图-LoginPanel(动态加载脚本LoginUIc.cs) -itemRoot -Item(动原创 2016-02-19 16:42:57 · 8069 阅读 · 2 评论 -
Unity Coroutine的深度理解与实践
以前一直用unity的 coroutine,什么意思,以及怎么用都知道(我相信大部分人都知道,但是要说出其中的原理,以及如何来扩展自己的coroutine 就不是每个人都知道了)其实了解一个事物基本上都是从几个方面来:第一,能干嘛,能解决什么问题; 第二,怎么用,能否自己扩展下面不装B,直接进入正题:coroutine 的存在其实是为了缓解update的压力,试想如果逻辑的检查都丢到原创 2016-03-14 17:06:47 · 2740 阅读 · 1 评论 -
Animator 状态图标被屏幕挡住了怎么办?
在开发的时候可能很多动作文件,摆在了Animator界面上,拖着拖着就乱了。到后面都看不到动作文件了,而Animator这个界面又不支持我们去改变他的位置。感觉很坑~~后来摸索了一下发现,重新打开Animator文件 即可~~ 这个时候他会根据文件进行重置 顺便记录一下Animator调试常用到的两个选项mute : 这个是用来中断状态转移的solo : 这个是用来提高原创 2016-04-06 17:23:54 · 633 阅读 · 0 评论 -
Unity5x 场景烘焙,动态物体烘焙不上
事情起因是这样的,以前我们都是用的unity4x ,新项目我们准备采用unity5x,而5x一个重大的改进就是烘焙已经完全和之前不同了。新的烘焙技术叫 Realtime GI . 简单说下能达到的效果就是更牛逼了,牛逼在实时过程中会生成一张间接的光照图,会记录物体表面受到的间接的光照信息,这样会有更真实的效果。(暂时没有实验过,后面补上,反正感觉是很牛逼了~~)回到主题~~今天我们场景原创 2016-04-22 15:50:11 · 5206 阅读 · 0 评论 -
Unity3d导入3dmax后model 的缩放为0.0254的原因以及解决办法
这个问题其实已经早都出现过了,今天我们这边也碰到了,这里做个记录吧导致的问题~ 场景的比例和3dmax中的比起来变大了,大概是2.54倍,而模型的导入设置的值为0.0254 ,如下图导入的两种方式:第一种:在目录层Ctrl+c/v 复制过去 (这个会出现上图的问题,模型比例不同了)第二种:手动拖放到工程中(这个是不会错的,unity会自动转换缩放)0.0254原创 2016-04-27 11:17:34 · 2611 阅读 · 0 评论 -
Unity3d 从零搭建android调试环境
项目到了后期都要进行 甄姬(真机)调试~~然而很多同学或许也会出现这样sdk版本不对,那样jdk版本有问题,各种很恶心的事,下面我就记录下我的全新的调试环境的搭建过程 第一步: android的工具下载地址 http://www.android-studio.org/ 这里面啥都有,我就直接下了Android studio2.0 + jdk8 (64位),这样就一步到位了 (实在不知道咋原创 2016-08-01 15:34:50 · 654 阅读 · 0 评论 -
Unity Physics.Raycast 深入理解
Physics.Raycast 理解方法原型与参数说明 其实这个函数有个很藏的很深的地方就是这个layermask, 一般情况我们获取layer的值都会是layermask.nametolayer 这个函数去取得对应的层级,然后把这个int形的参数给到函数使用。但是如果是使用了Physics.Raycast去获取碰撞物的时候,你怎么都获取不到被碰撞的物体。(即使你划线来表示你的射线原创 2016-08-11 14:55:44 · 44060 阅读 · 6 评论 -
Unity 官方bug 状态机动态更换不刷新
事件起因:当切换武器后(更换状态机),状态机对应的行为脚本上的技能绑定id 并没有得到改变,还是切换之前的。理论上是说不通的,因为这个是两个对象的脚本先上两幅图说明下 这里我们改变的就是这个MainActor_Man_Quan 的地方,如果改编成了其他状态机,那么这状态机上的动作对应的技能id依然是老的下图说明了该状态机上的一个动作对应的行为脚本当我原创 2016-08-18 15:09:26 · 1487 阅读 · 0 评论 -
Unity shader造冰女
情景在游戏中有的时候需要角色走到雪地场景,这个时候如果雪飘雪的,角色走角色的就会觉得不是很真实(当然估计没几个玩家会在意),如果角色走到不同的位置(不同的角度,不同的风向),随着时间的加长,角色身上的雪会堆积得越来越多,或者一个刚被杀死的怪物,随着时间越来越长,雪掩盖了他的身体,会不会很真实的感觉呢~这里就要实现这个功能。效果图原理为了实现这个功能,其实主要是利用了法线 和 雪方向来做文章,我们在原创 2016-09-27 18:18:47 · 1500 阅读 · 0 评论 -
手机能承受的drawcall 怎么算?
所谓的draw call 可以简单的理解为调用gpu的一次绘图指令。做unity的都知道drawcall 越小越好(不是绝对的),那么在当前硬件下,我希望保持足够的帧数的drawcall数是怎么计算的呢? 我像很多人跟我一样一知半解,只知道一般都要在150以下才能保持中低段手机玩的比较流畅。经过查询资料这里记录下NIVIDIA 在GDC上提出25K batch/sec 的渲染量会使1GHZ的CPU达原创 2016-12-23 17:47:28 · 5368 阅读 · 0 评论 -
减少GC,从Assetbundle缓存开始
之前有个想法,进入战斗之前凡是和战斗没关系的统统给我干掉,因为这个时候要为战斗腾内存,游戏里面最耗的应该也就在这个地方了吧。 but,but,but经过一些列的测试过后,也研究了其他内存和渲染方面比我们消耗更高的游戏后,惊人的发现,有时候并不是我们的优化没做到位,而是做过了,很多东西即使进入战斗了也可以不要去清掉的,不然会造成大量的内存分配和释放,那么系统就会进行GC操作,而GC耗时是非常恐怖的,原创 2016-12-23 17:59:04 · 1086 阅读 · 0 评论 -
unity解压文件变态提速
unity解压文件变态提速unity文件的随包 绝大多数的手游我相信都会带一部分资源到手机上,这部分资源被称为随包资源,正常情况下的资源会放入Resources下或者StreamingAssets目录下。 Resources目录放的一般为一些基本上不会改变的资源,比如splash图片,icon图片等等(不用解压)StreamingAssets目录下一般放置需要热更的资源,比如AssetBu原创 2016-12-26 10:22:17 · 3000 阅读 · 3 评论 -
Android 7.x 系统路径访问受限
前言:辛苦一年的游戏终于测试了,当然也会遇到各自各样的问题。这里记录下android新系统导致的路径访问问题。以前的做法 我们访问文件的本地路径,都是使用的www去访问相对路径,比如 “data/data//.unity3d” 当然这样在我们的内部测试中是完全没有任何问题的,内部测试的手机都是7.x以下的系统,但是当我们封测的时候,有些玩家的手机是7.x以后买的手机,而现在的厂商一般会配置最新原创 2016-12-27 11:38:37 · 681 阅读 · 0 评论 -
场景优化
前言:场景优化网上一大堆,然而东爷肯定不会去抄人家的,东爷是有节操的LOD 是什么鬼首先要说的是著名的LOD,什么是LOD自己百度,简单说下他的实现原理:LOD是根据相机的距离对远距离的物体使用低模,进出使用高模的方式,这样带来的好处就是既不减少表现效果又能减少面数。这时候你是不是在想这样很吊,然并卵,手机上对那些需要处理lod的物体的脚本开销我大概计算了下,都比面数来的直接。(这里并不是绝对的,主原创 2016-12-30 16:26:28 · 732 阅读 · 0 评论 -
华为荣耀6 安装失败
前言:游戏第二次封测了,很庆幸一测的问题这次都没出现过了,而二测当然也会遇到二测的一些问题,这里记录下华为荣耀6安装游戏失败的解决方案。安装失败开始是在eclipse下链接调试,发现很多日志,而且基本上是说的权限的问题,按照日志解决了权限的添加后,发现仍然没有效果。后来就动用了adb 的一些指令进行检查,最后发现是我们sdk里面的manifest 设置安装路径有问题<manifest xmlns:原创 2017-01-18 17:13:00 · 1438 阅读 · 0 评论 -
unity3d libmono最简单的编译
前言:如果你在考虑unity的热更新问题,那么有几种方案可以供你选择 1. 选择lua :可以保证你的ios+android平台更新,缺点:lua调试很蛋疼,不是面向对象的语言(虽然你可以用table来作为假定的面向对象,但是这里我说的是标准的面向对象) 2. 选择反射:可以做到ios+android平台更新,缺点:不能挂载mono脚本到你的prefab上,所有的东西你都需要去通过f原创 2017-02-10 10:52:28 · 3819 阅读 · 0 评论 -
Unity3d 如何优化UGUI
前言:游戏中UI会由很多图片(sprite)组成,如果每个图片都是一个单一的文件,那么在绘图的时候都会使用一个drawcall(老版unityGUI的深坑),而大名鼎鼎的NGUI对其进行了优化使用了atlas的图集原理进行了合并图集减少drawcall。而当我们再次使用UGUI的的时候你当然不会忘了需要打包图集这个工作。下面说说打包图集的一些东西~~以及遇到的问题。如何打包图集?首先你需要开启打包原创 2017-04-01 17:20:02 · 5677 阅读 · 0 评论 -
Unity3d 如何优化内存
前言:一提到内存这个东西我相信很多做技术的都头大,我也不例外,如何平衡内存值和手游的表现真的是需要去反反复复去琢磨的。下面记录下我们游戏的内存优化以及一些技巧首先我们需要一个目标,也就是我们需要把我们游戏优化到什么程度算是比较能接受的?这个问题要看游戏类型把,比如我们这种3d arpg的游戏还是带水墨风格的就会非常吃力,因为很多水墨边都是半透明的资源。(换句话说我们这个能优化下来你的也一定可以做原创 2017-04-01 17:46:14 · 4545 阅读 · 0 评论 -
Unity Camera 使用场景
ClearFlags:清除信息 Skybox:用天空盒清除一遍再画图 Solid Color:用固定颜色清除 Depth Only:清除深度信息 Don‘t Clear:不清除Culling Mask:渲染层Target Texture:将相机看到的内容渲染到一个rt上这里记录下相机上常用的几个设置,以及使用场景Depth Only 双相机照射UI 和 3D物体 U...原创 2018-05-06 12:04:03 · 621 阅读 · 0 评论