Unity
文章平均质量分 73
_Captain
这个作者很懒,什么都没留下…
展开
-
Unity Animation Instancing 官方解决方案初试
Animation Instancing 是unity官方提出的高性能大规模动画解决方案,起初是为了解决企业用户的需求,后来在Github上开放。Github地址:https://github.com/Unity-Technologies/Animation-Instancing官方Blog地址:https://connect.unity.com/p/animation-instancing-gao-xing-neng-da-gui-mo-dong-hua-jie-jue-fang-an项原创 2020-11-18 01:19:05 · 4200 阅读 · 5 评论 -
Unity2019 Dots初试
主要参考Unity Connect上面的文章,原文链接:https://connect.unity.com/p/unityecs-yi按照文章,是创建 100x100 的立方体,以噪声作为Y轴值,进行波浪动作。测试环境Unity 2019.4.2f1 (64-bit)安装最新的Package测试结果原始组件模式:15-16fpsECS+JobSystem:60-70fpsECS+JobSystem+Burst:120-180fpsECS模式ECS是一种设计思想,和Unity之原创 2020-07-04 18:59:21 · 1552 阅读 · 0 评论 -
Unity发送参数给Android打开TestActivity0、TestActivity1
本文大部分来自xuanyusong。原文地址http://www.xuanyusong.com/archives/667 。只是xuanyusong文章的是MAC系统。这里写的是WIN7.首先新建Android的工程,在 D:\Program Files\Unity\Editor\Data\PlaybackEngines\androidplayer\bin 这个路径找到classe原创 2013-06-17 23:31:07 · 2904 阅读 · 0 评论 -
Unity Android/IOS 多点触摸实例
Unity中获取到的坐标是左下角为(0,0)但是绘画的时候是以左上角为(0,0)所以直接在获取到的坐标上画图是不行的……using UnityEngine;using System.Collections;public class MultiTouch : MonoBehaviour { public Texture2D imageBG; public Tex转载 2013-06-19 23:01:40 · 3293 阅读 · 0 评论 -
Unity出现 error building player exception android (invocation failed)
今天在编译Android的时候出现这个错误error building player exception android (invocation failed)百度谷歌之后,看到xuanyusong的博客里面有说道注意:Error building Player: Extracting referenced dlls failed. 无论你编译任何平台都请修改一下这转载 2013-06-23 22:06:44 · 4890 阅读 · 0 评论 -
Unity 切换Shader耗CPU大
Shader.CreateGPUProgram()这个函数过程就是创建GLProgram链接Shader的一个过程,在Unity3d中的Shader.Find()是直接创建GLProgram的。如果是自己去写引擎,GLProgram一般在初始化的时候就会创建完毕,然后用类似GLProgramManager管理。Unity中的问题我们也可以用这个方法解决,但是Unity提供了简便方法。原创 2014-07-28 15:44:26 · 8590 阅读 · 0 评论 -
Unity3d 调用 C++ 函数 实现加密防破解 (Android向)
因为Unity 采用C# 作为主要语言,代码编译之后作为DLL存在与执行文件中,这就给我们带来很大的一个问题,反编译非常容易。如果有一些比较重要的代码不想让别人看到,那就用C++来编写,C++编译成so文件,反编译之后只能成为汇编语言,无疑加大了破解难度(当然不能百分百防破解,汇编大牛很多的)原创 2015-02-07 13:18:56 · 7136 阅读 · 3 评论 -
Unity3d 换装 之 模型动画分离
在手游中换装成了越来越不可缺的一个功能,毫无疑问各式各样的时装为游戏增添了不同的色彩。对于2D手游,或许是更换对应的序列帧,也或许是如同3D手游一般,更换模型动画。对于游戏中的人物,一般分为头、上身、下身、武器四大部分就可以了。所以在游戏中,我们把这四部分单独做四个模型动画,然后动态拼接为一个整体,达到换装的效果。原创 2015-03-01 15:31:53 · 2135 阅读 · 0 评论 -
Unity3d 游戏角色换装
对于2D游戏来说,角色换装就是更换对应人物图片。对于3D游戏,如果一个角色模型是一个整体,那么换装就是更换整个模型或者简单的,更换这个模型对应的Material。如果换装之后人物角色的外形变了,例如各式各样的武器,武器A是短刀,武器B是太刀,武器C是巨剑。那么就需要把模型拆分,例如上面说的更换武器,那么至少要把人物角色模型拆分为 人物模型+武器模型。原创 2015-03-23 19:43:47 · 2813 阅读 · 0 评论 -
Unity3d 换装 之 模型动画分离
在手游中换装成了越来越不可缺的一个功能,毫无疑问各式各样的时装为游戏增添了不同的色彩。对于2D手游,或许是更换对应的序列帧,也或许是如同3D手游一般,更换模型动画。对于游戏中的人物,一般分为头、上身、下身、武器四大部分就可以了。所以在游戏中,我们把这四部分单独做四个模型动画,然后动态拼接为一个整体,达到换装的效果。原创 2015-03-23 19:44:14 · 8721 阅读 · 0 评论 -
Unity3d 人物换装 之 Mesh 合并 (材质合并)
在Unity中提供了模型动画合并的功能,也就是说我们可以把人物模型的4个部位合并到一个GameObject中。原创 2015-03-23 20:13:10 · 9698 阅读 · 0 评论 -
程序员初见Maya 之 简单骨骼蒙皮动画
作为一个Unity3d程序员,和3D动画打交道的时间占了工作的大半。每天从美术手里接过热乎乎的FBX,导入到Unity3d,对其进行一番Clip切割,修改一下Scale比例,然后到代码中修改一下状态机,调试每一个动作。但是终究是用别人的成品。FBX导入到编辑器中,看到有Root、LeftBone、Bone123456这些节点,不知道是什么东西。这种很迷糊的感觉。趁清明回家,花一天熟悉Maya的基础知识,做一个最简单的骨骼蒙皮动画。原创 2015-04-09 21:55:01 · 7470 阅读 · 0 评论 -
该怎么样用C++来实现类Unity3d的AddComponent
Unity3d 越来越完善,朝着它学习的人也越来越多。一是因为Unity3d是一整套开发工具,使用起来简单快捷。二是 Mono C#的快速开发上手简单。在Unity编辑器中,添加一个GameObject , 然后把一个继承自MonoBehavior的脚本拖到GameObject上,即可对GameObject进行操作。或者在代码中new 一个GameObject,然后用AddComponet 挂载一个脚本到GameObject上。原创 2015-04-11 01:22:08 · 3608 阅读 · 1 评论 -
Unity3d 性能优化遐想 OnBecameVisible/OnBecameInvisible
当玩家在主城中行走时,周围大量玩家显示在玩家周围,不管是玩家能看到的前方,还是看不到的后方,所有的人物模型都在进行着脚本运算。在OpenGL中 提供了裁剪功能,不在视口范围内的点和面会被裁剪掉以减少渲染代价,在Unity中也顺势提供了相关的API,提供物体进入/离开 视口的函数回调。原创 2015-04-13 20:07:02 · 5555 阅读 · 2 评论 -
Unity3d游戏安装包 极限减少之 四分图、二分图 (NGUI向)
在这个酒香也怕巷子深,游戏不打广告不买用户不刷榜就会死的时代。每个游戏代理都想让CP提供的安装包越小越好,能99M绝对不要100M。但是游戏开发商们在一遍一遍踢出无用的资源,一点一点得把游戏包扣小,发现大小还是减不下来,该怎么办,这时只有拿美术资源开刀了。原创 2015-04-14 23:54:31 · 3485 阅读 · 6 评论 -
Mono2.0 对C#闭包 与 donet 不同的实现导致Unity的Bug 及解决方案
对Unity3d进行反编译,反编译DLL 为 IL代码并进行修改,讲解 IL 命令语法以及如何反编译 、重新编译 IL 代码为DLL。原创 2015-06-20 23:27:20 · 3340 阅读 · 1 评论 -
慎用Outline ,UGUI Outline实现原理分析
使用 UGUI 制作背包的时候,同事发现如果背包中添加了大量的物品,比如两百个,Unity就会出错,提示 Canvas element contains more than 65535 vertices. This is not supported 。意思就是 Canvas下面的顶点数过多。原创 2015-06-06 18:40:37 · 12572 阅读 · 0 评论 -
判断 ttf 字体文件是否包含某个字
在Unity中,如果指定的字体不包含某个字,Unity就会从 自带的 Arial 中读取字形来创建这个字,本意是好的,但是总是会有问题。原创 2016-02-15 20:04:38 · 10649 阅读 · 4 评论 -
为什么 Instantiate 克隆出来的GameObject的Scale 在 SetParent 总是放大 64倍?
经常会犯一个错误:GameObject childNodeClone = Instantiate(childNode) as GameObject;childNodeClone.transform.localScale = childNode.transform.localScale;childNodeClone.transform.SetParent(childNode.transfo原创 2016-02-27 13:25:14 · 8427 阅读 · 0 评论 -
Unity3d 人物换装之 一个Shader处理3张图片 减少DrawCall
虽然GameObject数量减少了,但是DrawCall一个都没有减少哦!之前是4个,合并之后仍然是4个。简单的来说呢,就是一个材质球,一个DrawCall。也就是说呢,一个Shader,一个DrawCall。既然知道了一个Shader一个DrawCall,那我们就开始着手去处理,把红、绿、蓝这三张图片,在一个Shader中进行处理,只使用一个材质球,这样就只有1个DrawCall了。原创 2015-03-24 00:51:55 · 5239 阅读 · 4 评论 -
UGUI 实现无限滚动
界面中大量使用了 Outline 以及界面复杂度较高,在邮件 等需要超长滚动列表的界面,就会十分卡顿。既然美术与策划同学不能妥协,那就来优化代码。按照滚动区域的属性,展示给玩家看的只是一小块区域,比如列表中有100封邮件,其实只要显示个七八封就够了,剩下的,在向上滑动的时候,把第一排移动到最后一排,替换内容。原创 2016-05-31 22:47:01 · 17005 阅读 · 9 评论 -
自定义Mono,实现Unity Android平台代码更新
Unity是基于Mono的,我们写的代码都被编译成DLL,然后由Mono读取这个DLL并解析运行。在Mono眼里,DLL和普通的资源文件没什么区别。原创 2017-02-28 02:13:38 · 4371 阅读 · 0 评论 -
Unity 与 NGUI 坐标转换原理
在游戏中最常用到坐标转换的就是制作人物头顶的血条/名字 之类的显示,Unity提供了摄像机以下API供我们使用:1、将世界坐标转换到屏幕坐标Camera.WorldToScreenPoint()2、将屏幕坐标转换到世界坐标Camera.ScreenToWorldPoint()比如在游戏中的主角,我们知道他的世界坐标,通过场景摄像机,调用 WorldToScreenPoint 将坐标转换到屏幕坐标。原创 2017-01-24 01:21:02 · 2751 阅读 · 5 评论 -
NGUI UILabel 文字破碎
项目使用NGUI,最近碰到 Loading界面的提示文字破碎的Bug。参考了以下文章http://blog.csdn.net/langresser_king/article/details/22095235转自http://blog.csdn.net/huutu http://www.liveslives.com下面先来了解一下为什么会出现这种问题。需要了解的是 NGUI的UILabel使用的是U原创 2017-03-13 18:33:14 · 2692 阅读 · 0 评论 -
Profiler.BeginSample 在Release版本会执行吗?
为了在Profiler中 检测到具体是哪个 UIRect 的Update 会申请内存,在UIRect 的Update 里面调用了 Profiler 操作,并且传入的是 UIRect 的名字。在UWA的检测报告中,这里分配了很多堆内存,这是意料之中的事情,毕竟有大量的字符串拼接。转自http://blog.csdn.net/huutu http://www.liveslives.com但是问题是,R原创 2017-06-29 12:20:37 · 1587 阅读 · 0 评论 -
Unity使用顶点颜色 做混合 来实现SoftParticle 效果
简单的UV滚动 实现水面效果,在边缘处很生硬。使用SoftParticle 可以变得融合。但是手机上不能使用SoftParticle。可以采用刷入顶点颜色数据 作为Alpha 来源,在Shader中进行混合。边缘处的顶点,将顶点颜色 刷入透明。在Blender中操作。刷入之后,在shader中就可以取来作为Alpha了。修仙3...原创 2019-04-04 19:34:53 · 2366 阅读 · 0 评论