Unity3D
文章平均质量分 67
爱思考的孩纸总是痛苦滴
每天都是自我重构
展开
-
Unity屏幕效果-高斯模糊.md
效果C#层using System.Collections.Generic;using UnityEngine;using UnityEngine.Serialization;using UnityEngine.UI;public class GaussianBlurUI : MonoBehaviour{ public Camera[] blurTargetCame...原创 2019-11-05 23:36:20 · 639 阅读 · 0 评论 -
Unity Cache Server的使用
官方文档地址官方关于cache server的手册地址下面是我对官方手册的一个粗暴翻译Unity拥有一个完整的自动资源流水线。当某个资源比如a.psd或者一个fbx文件被更改了,Unity监测到这个改变并自动的重新导入它。从这个文件导入的数据会被Unity后续以一个内部格式存储这种安排旨在使工作流程为个人用户尽可能高效灵活。 但是,在团队工作时,您可能会发现其他用户可能会继续对资产进行更改,所有这些原创 2017-05-11 18:45:40 · 6103 阅读 · 0 评论 -
Unity 混合树(BlendTree 2D)的应用
最近在玩网易代理的《我守护的一切》,里面角色头部及其眼神会跟随镜头方向,与玩家交互性增强,就好像主角一直在注视着你。就用 Unity 简单的实现了一下。 头部朝下的动作 头部朝上的动作实现 根据参数的值决定每个方向上的权重原创 2018-01-15 23:14:23 · 3718 阅读 · 1 评论 -
Unity3d 预制体烘焙
Unity下的烘焙一般是针对场景文件,也就是.unity 文件。使用场景文件,必然就有LoadScene这一步。LoadScene 这一步会有大量GC的工作需要Unity引擎去做,导致花费的时间比较长,这也是我们经常需要去优化的关于切场景的耗时问题。另外某些情形下,加载一个新的场景资源本身就发生在当前逻辑模块内。如点击英雄图标,模拟预览这个英雄的技能使用。基于以上的考虑,我们考虑把整个场景做成一个...原创 2018-02-24 22:32:59 · 3293 阅读 · 0 评论 -
UniRx学习笔记
Aggregate(聚合)聚合方法允许对sequence应用累加器函数,也就是可以寄存变化前的值。public class TestAggregate:MonoBehavior{ ReactiveProperty<int> rx = new IntReactiveProperty(1234); void Start(){ //seed即为累加值的当前状态值,亦即变原创 2018-03-13 16:23:20 · 1614 阅读 · 0 评论 -
Unity小优化之美术字贴图合并以合批
Unity中的UV坐标系Unity采用OpenGL的UV坐标系,原点在左下角。了解这点,帮助我们后续重新算合并贴图后字体的每个CharacterInfo中的UV坐标。重算每个CharacterInfo的UVList<Font> CreateMergedTexture(List<Font> fontList){ var toMergedTexs = fontL...原创 2019-05-17 22:45:03 · 1442 阅读 · 0 评论 -
Unity性能优化总结
性能优化的点有很多,整理一下,帮助我们获取一张清晰的优化策略图 参考链接: * 内存:https://blog.uwa4d.com/archives/optimzation_memory_1.html * CPU:https://blog.uwa4d.com/archives/optimzation_cpu.html * GPU:http://blog.csdn.net/candycat19原创 2017-11-02 18:21:20 · 482 阅读 · 0 评论 -
Catlike渲染教程之多个光照
渲染四 多个光照每个物体渲染多个光照支持不同的光照类型使用光照 cookies计算顶点光照引入球谐函数这是渲染系列教程的第五篇教程。前一章我们介绍了光照,只是一个单一的方向光。现在我们将支持多个光照。 一个平淡无奇的球体,在多个光照下变得生动有趣包含文件为了能为我们的shader 支持多个光照,我们需要在 shader 里面添加更多的通道 pass。这些通道 pass 最终会包翻译 2017-10-07 15:52:48 · 343 阅读 · 0 评论 -
Unity下利用 timeScale和 unscaledDeltaTime实现部分静帧
话题铺垫看图说话 想必用 Unity 开发的朋友们都知道一个知识点,Time.timeScale 用于控制整个游戏运行时的时间缩放,使用它可以调整时间的流动速度,设置为0时间静默,设置为1时间按照我们真实世界的时间速度流逝。 问问往往没有这么简单,我们在实际的开发过程中会遇到各种需求。最容易想到的一个需求就是战斗中的譬如大招技能的静默问题,描述起来就是,对于特定目标时间正常流动,而对于其他物体时原创 2017-08-02 00:43:05 · 7998 阅读 · 3 评论 -
3D物体在UGUI下的坐标映射
3D物体在UGUI下的坐标映射这个标题着实不好取。举例,譬如怪物的血条总是跟随者怪物移动而移动,因而我们需要实时的更新这个血条的坐标。类似的,还有很多应用场景。归结起来就如标题所示–“3D物体在UGUI下的坐标映射”。其实并不男,只是实际工作中发现经常用到,故总结为一个工具函数,方便以后工作使用。 下面看我在 UGUI的Canvas下是如何实现的。关于坐标转换,肯定离不开相机,我们先来考虑相机。毫原创 2015-11-01 01:09:47 · 1774 阅读 · 0 评论 -
Unity实现脱屏提示
先看效果图再贴代码using System.Collections;using UnityEngine;using Joker.ResourceManager;using PalmPoineer.Mobile;using UnityEngine.UI;namespace Joker.Battle { public enum EOutScreenGuiderType {原创 2016-11-17 15:44:00 · 1549 阅读 · 0 评论 -
Unity3d聊天视图适应手机键盘视图
我们实际开发出来的聊天系统,有时候会出现这样一个现象,点击InputField会弹出手机系统的键盘,键盘的弹出会遮住InputField甚至频道里面的消息。为了解决游戏聊天视图被这个系统键盘遮挡的问题,最直接的思路就是,输入框根据键盘的高度来做适应,意思就是说,根据键盘的高度,动态改变游戏聊天视图的高度。目前市面上比较有名的游戏,如手游《龙珠》是这么做的。我参与的项目同样遇到这样的需求,采用了同样的原创 2017-04-21 15:36:07 · 7836 阅读 · 6 评论 -
http阻塞模式和非阻塞模式
Http同步请求和异步请求区别同步会阻塞线程,一直等到网络回调,而异步不会阻塞同步可以设置TimeOut,异步则对TimeOut无视异步需要自己对TimeOut进行计算,通过监听接收到网络回调在Unity的表现一般做连接launch sever的时候用http请求同步方法(sync http)注意看按钮,在同步时,主线程阻塞,按钮是无任何反应的,不可点击,无hover响应的 异步方法(原创 2016-11-26 18:15:49 · 22546 阅读 · 3 评论 -
Renderer.Material和Renderer.SharedMaterial的区别
结论renderer.sharedMaterial意为共享材质,使用了相同材质球的 renderer中的sharedMaterial一致,更材质改属性,相同材质的实体的材质也会被更改;renderer.material是自己的材质,更改材质属性,也只是更改自身的;经过测试,使用 renderer.material进行材质球属性更改,Unity 会生成一份新的material实体,造成内存增加,原创 2017-05-07 01:26:53 · 5389 阅读 · 0 评论 -
Unity角色技能及技能编辑器设计之概念篇
概览首先给大家展示一下我们一个游戏中设计的技能及编辑器 构思我们很少能听到关于技能的一个定义或描述,那么,如果我们需要用程序思维来概括技能,我们应该怎么措辞才比较准确?当然,对于不同的游戏,技能的设计复杂度也大不一样,复杂的可以复杂到如Dota每个角色的主动被动技能,简单的可以简单到益智类游戏一个技能只是使用一下道具。如何庖丁解牛,我想最直接的想法就是找到技能的基本组成要素。然后基于这些要素,我们原创 2017-06-22 01:25:39 · 22919 阅读 · 6 评论 -
Unity实现弹幕功能
* 支持从左到右和从右到左的方向指定* 支持纵向的弹幕行数的动态扩展* 支持特殊的文本外框(如用于表示弹幕为玩家自己发送的)* 支持富文本* 支持在屏幕没有占满的情况下,两条弹幕不重叠,并满足指定的最小间距原创 2016-11-07 21:34:39 · 4760 阅读 · 10 评论 -
Unity中的StrippingLevel
StrippingLevel的作用StrippingLevel是用来减少打包出来的player的体积如图。第一个是选择Strip Byte Code的包的大小,第一个是选择的Disabled的打出来的包的大小,明显的Strip Byte Code的包体积小于没有进行剥离的包,大概1M。 StrippingLevel选项的副作用使用Stripping Level需要注意的是,有可能会导致一些API执原创 2017-08-22 19:58:21 · 6503 阅读 · 0 评论