- 博客(27)
- 资源 (7)
- 收藏
- 关注
原创 ILRuntime 使用nuget 管理使用unity相关的dll
背景标题说不清楚,所以有必要来说明一下我的意图。现在公司使用unity来做类似 容器插件化 的设计,即一个unity工程会在运行时根据时机加载不同的小app,这些小app都是一个单独的项目,全部使用 ILRuntime 来实现。于是就会有一个问题,每当需要创建一个小app的时候,都需要创建一个单独的 C# 库工程(ILRuntime使然),这样每次都会去依赖一些unity相关的dll,比如 UnityEngine.dll 、 UnityEngine.coreModule.dll 等等,然后每次都要找到.
2021-04-14 18:19:23 389
原创 Unity 渲染 YUV
YUVYUV和RGB一样,是另一套用来表达颜色的方案。其详细叙述请参阅[YUV的维基](https://en.wikipedia.org/wiki/YUV)欢迎使用Markdown编辑器加粗样式你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Mar...
2019-07-14 12:51:59 4315 13
原创 相交高亮
相交高亮,即是当模型间交界线用别的颜色给标记出来。是深度图的一个应用,我更愿意把它提出来当做一种shader的模型(就像边缘高亮一样)。
2019-01-19 14:07:54 652
原创 unity 描边之stencil篇
Unity描边所使用的方式何其多,每种都有其两面性,有些效果不太好,但实现简单效率也高;有些效果棒棒哒,但耗性能。我们需要在了解每种方式的厉害后,再根据项目的情况来择优用之方为上上策。本篇就先从比较简单说起:利用模板测试的方式来实现描边效果。本篇必备技能:模板测试的基础知识一、原理先用一个pass把模板缓冲区的值刷至特定值(比如 2),并在该pass里进行正常的模型渲染(纹理采样、高光...
2019-01-09 14:10:47 4005
原创 Rim边缘高光模型
Rim 模型,即边缘高光模型,其在游戏里的应用比较广泛。本节主要实现为其抽象出一个shader模型,并阐明原理,具体应用案例将在下节里附上。一、Rim长啥样先上几个图,了解一下这个Rim到底是什么样的。火炬之光里骷髅怪被建筑物遮挡时呈现出的X光效果boss进入某些特殊状态时的效果某些场景为了凸显某些东西时的效果以上这些都是Rim模型的功劳。那么下面先说说其实现的原理。二、R...
2019-01-08 18:23:32 1441
原创 Apple Device Model list (更新至iphone xs、iphone xs max)
Apple Device Model list (更新至iphone xs、iphone xs max)Apple devices model list.iPhone"iPhone3,1", "iPhone3,2", "iPhone3,3": iPhone 4"iPhone4,1", "iPhone4,2", "iPhone4,3":
2018-09-21 17:01:45 3421 1
原创 UGUI粒子特效裁剪,层级,适配
UGUI粒子特效一、UI层粒子特效存在的问题凭我的经验在UI层播放粒子特效至少会遇到以下3类问题:粒子特效的裁剪问题。比如滑出滚动列表后被裁剪粒子特效与UI元素之间的层级问题。能够被某些UI元素遮盖、或夹在某些UI元素之间粒子特效的适配问题。在不同分辨率下粒子特效不能像UI一样自动适配这些问题相比大家都有遇到过,解决方案也是多种多样,本博客提出一个统一的解决方案,能够同...
2018-07-31 11:52:44 10621 2
原创 UGUI 之 Mask 和 RectMask2D 与 drawcall
虽然 Mask 的名声不是很好,但是在做界面的时候很多时候都需要它,比如滚动列表。要想精算出一个UI的drawcall数和渲染顺序,光掌握上一篇的知识或许还有些吃力,因为mask在项目里真的太常见了。也往往是UI的drawcall数的一个重灾区。本文不说Mask和RectMask2D是如何实现的,仅仅设立一些案例来总结出两者的性质,希望能给我们做UI时一些实用的指导性作用。也希望看完了本文之后,能...
2018-07-09 23:54:03 9621 1
原创 UGUI drawcall合并
UGUI drawcall合并原理高数量的drawcall带来的坏处不用多说了,本篇重点说的是UGUI是如何合并drawcall的。 通过这篇博客,你将学会如何精算一个UGUI界面到底有几个drawcall,并且能想象出各UI控件的渲染顺序(即Frame Debugger窗口里的渲染顺序)。概念篇在学习本篇之前,你需要了解以下几个名词。bottomUIA是B的botto...
2018-07-08 14:59:21 10747 8
原创 自定义头像
好久没写博客了,真的好忙啊,没有一点下班时间,这公司好拼!! 游戏中用户的头像不仅能显示系统定义好的头像,而且如果能显示用户自定义的头像肯定能丰富游戏的表现。今天就来讨论下Unity游戏如何实现游戏中显示用户自定义头像的实现。流程分析Unity中触发选择自定义头像(相机or相册)调用系统原生接口弹出相机或相册供用户获取头像图片对用户得到的头像进行裁剪压缩上传CDN服务器或者存到本地目
2017-08-13 16:20:38 4508
原创 仿arrow.io之人物属性
上一篇提到了人物属性,并声称没有这个做不下去了。其实我没有说假话。因为接下来就会实现战斗的主要逻辑了,游戏的战斗在代码里其实是一堆数字的四则运算。这堆数字就是以被我们冠以 属性 名头的东西为载体的。比如玩dota的就常说:“拍拍吃了一个急速,下路小心了!”、“你这小脆皮,PA能一刀把你暴死!”等等这些术语其实都在描述了一个属性在游戏里的作用。好了,话不多说,屁不多放,进入正题。arrow.io里的人
2017-04-17 23:49:09 556
原创 仿arrow.io之人物控制
人物的控制我想大体上有以下内容: 控制输入(键盘还是虚拟摇杆) 收到输入后能移动人物和发射子弹 控制输入因为有两套输入设备,键盘(PC上控制)和虚拟摇杆(手机上控制)。让我自然而然地想到了用一个接口文件来规定一下这两套输入设备的共同之处。就是: 移动 转向 射击 所以这个接口文件自然地也有三个接口了:using System;public interfac
2017-04-17 11:40:19 528
原创 仿arrow.io之地图
ArrowFighterArrow.io是一款射击类游戏,io系列新作。比球球和贪吃蛇的玩法又复杂了一个模式,加入了等级系统。每次升级可以获得技能三选一。金币可以购买进阶的人物。玩了一下很快就上瘾了,进而有想自己用Unity实现一下这款游戏的想法。当然只是机制,玩法上的尽量还原,美术上就用简单的cube加一些简单的动画来用了,毕竟我只是个码农。不管还原度多少,先做吧。。下面我会把实现这款游戏的步骤
2017-04-17 09:37:04 493
原创 Unity 3D - 旋转
方法1:物体绕Y轴旋转30度。 transform.rotation *= Quaternion.AngleAxis(30, Vector3.up); 或者 transform.localEulerAngles += new Vector3(0, 30, 0); 方法2:设置Y角度为30度。 transform.rotation = Quaternion.AngleAxis(30, Ve
2016-10-10 13:51:22 3467 1
原创 Unity里的平台宏
平时写代码经常会区分平台。然而又不记得,故特做此笔记。。UNITY_EDITOR Define for calling Unity Editor scripts from your game code. UNITY_STANDALONE_OSX Platform define for compiling/executing code specifically for Mac OS (T
2016-09-20 15:05:28 591
原创 Unity 打包一类报错的解决办法
报错: Error building Player: CommandInvokationFailure: Failed to re-package resources. See the Console for details. F:\adt-bundle-windows-x86-20140624\sdk\build-tools\android-4.4W\aapt.exe package –aut
2016-09-06 13:56:09 3337 1
原创 UGUI 实现屏幕外怪物的指示箭头
在玩ARPG手游的时候,我们常常会发现在战斗的过程中,如果有怪物在屏幕的外边(即玩家视野之外)的时候,会发现在玩家周围活屏幕边缘有指示怪物方位的箭头,而且这是在UI上的。我用UGUI来实现这个贴心的功能。首先实现思路:肯定是把3D世界的坐标投射到屏幕坐标,再由屏幕坐标投射到UI坐标。有两种实现方式:先在3D世界中把指示箭头的位置计算出来。 然后再把计算出来的点投射到屏幕。与玩家的点也投射到屏幕。
2016-05-07 17:09:00 7940 3
原创 UNITY 围绕一个物体做圆周运动
有一道题:一个物体围绕原点(0,0)做匀速圆周运动。t1时物体位置为(x1,y1),已知物体的角速度为 w,围绕半径为 r。求经过时间t后,物体在圆周上位置(x,y)。求得: - x = r * sin(w * t) - y = r * cos(w * t)using UnityEngine;public class RotateAround : MonoBehaviour {
2016-05-04 17:08:49 10236 2
原创 让割草类游戏更有趣的攻击动作设计技巧
让攻击准确命中的目标敌人的机制 在《战神Ⅲ》中,面对四面八方来袭的敌人,玩家必须瞬间做出反应,选择先消灭那个敌人。这里的关键之处在于,让玩家的攻击能确实命中目标敌人的“锁定”机制。但是《战神Ⅲ》中并没有锁定操作。实际游戏一直自动进行着锁定和解除锁定,只是玩家在玩游戏时没有察觉到罢了。这一机制结构如下: 1、玩家倾斜左摇杆时,玩家角色会锁定移动方向上的最近敌人。 2、锁定过程中,玩家角色的面部
2016-04-01 11:17:46 1697
原创 创建型模式 --- 建造者模式(Builder)
Builder模式的缘起: 假设创建游戏中的一个房屋House设施,该房屋的构建由几部分组成,且各个部分富于变化。如果使用最直观的设计方法,每一个房屋部分的变化,都将导致房屋构建的重新修正….. 动机(Motivation): 在软件系统中,有时候面临一个”复杂对象”的创建工作,其通常由各个部分的子对象用一定算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将
2016-03-08 21:27:58 421
原创 创建型模式 --- 抽象工厂(Abstract Factory)
常规的对象创建方法: //创建一个Road对象 Road road =new Road();new 的问题: 实现依赖,不能应对“具体实例化类型”的变化。 解决思路: 封装变化点—–哪里变化,封装哪里 潜台词: 如果没有变化,当然不需要额外的封装!工厂模式的缘起 变化点在“对象创建”,因此就封装“对象创建” 面向接口编程—-依赖接口,而非依赖实
2016-03-07 22:31:50 382
原创 创建型模式 --- 单件模式(Singleton Pattern)
动机(Motivation): 在软件系统中,经常有这样一些特殊的类,必须保证它们在系统中只存在一个实例,才能确保它们的逻辑正确性、以及良好的效率。 如何绕过常规的构造器,提供一种机制来保证一个类只创建一个实例? 这应该是类设计者的责任,而不是类使用者的责任。 结构图: 意图: 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 生活的例子:
2016-03-06 22:25:02 426
转载 深入浅出聊Unity3D项目优化:从Draw Calls到GC
==========原文地址看看优化需要从哪里着手?匹夫印象里遇到的童靴,提Unity3D项目优化则必提DrawCall,这自然没错,但也有很不好影响。因为这会给人一个错误的认识:所谓的优化就是把DrawCall弄的比较低就对了。对优化有这种第一印象的人不在少数,drawcall的确是一个很重要的指标,但绝非全部。为了让各位和匹夫能达成尽可能多的共识,匹夫首先介绍一下本文可能会涉及到的几个概念,之后
2016-03-05 18:35:49 725
原创 Unity 之 TexturePacker(TP) 的应用
TexturePacker是一款非常牛逼的打图集软件,是一款收费软件。这是它的官网:https://www.codeandweb.com/texturepacker,大家可以下到最新版本。即便如此,网上还是有很多破解版的(虽然不是最新版的),但是已经够用了。
2016-03-02 10:18:30 10305 2
原创 UGUI运用美术字体
在游戏的制作中,美术字的运用是美化游戏的常用手段。比如普攻,暴击打出的战斗飘字就常常利用不同的美术字来做出区别。那么在Unity中如何把美术字运用起来呢?且看下文:1、道具准备。 BMFont:位图字体制作工具。这是我收藏的一个,下载地址:http://pan.baidu.com/s/1pKs8bMz 安装好之后,打开位图字体制作工具,长这样的: 菜单栏上单击 Edit -> Open
2016-02-27 14:52:24 7672 2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人