自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 资源 (1)
  • 收藏
  • 关注

原创 网格擦除效果——类似宝剑大师

最近找工作有时间可以把之前工作中遇到的一些问题及解决办法写出来,当然这份代码并不是公司的那份代码,这份代码是在源项目上解决思路写出来的,所以做出来可能有点乱。首先思路跟2D的思路差不多的,因为我们只是在做3D表现而已。首先在擦除的时候他的原理跟2D的一样,但是他的网格渲染方式可能跟2D就不一样了,还是一样我们需要首先生成一个3D的网格。3D网格生成的核心代码如下:private GameObject GeneratorBody(string bodyName, Polygon points)..

2022-03-14 20:22:23 667 2

原创 网格擦除效果

由于之前项目中有遇到那种需要做擦除效果,所以当时不知道用的什么技术,所以就把别人的游戏破解了,查到一个库:Clipper。结果在github上真的找到原作者写的c#库,原作者其实是写了一个mfc的exe运行文件,所以我们只需要原始的库文件就行了,至于怎么运行的就直接看的原mfc工程就是vs工程。这里有原工程的地址:Clipper download | SourceForge.net大家可以用vs打开源工程并运行,可以看到代码是怎么实现的,简单讲一下它的原理,例如地图是一个矩形,然后我们把一个圆放到一个.

2022-02-17 16:16:20 1944

原创 网格变形效果——黏液效果

做的效果图如上,效果制作分为3个部分,一部分是挤压,一部分是拖拽,一部分是复原。1 先说挤压吧,首先挤压有一个挤压区域,首先我们需要获取模型上所有的顶点并且模型的碰撞器会随着模型的变化而发生变化因为只有这样碰撞才会实时的发生反馈。定义挤压区域,判断所有的顶点是否在以鼠标位置为中心圆的挤压半径,如果在圆内那么它的y坐标向0插值。反之不会发生任何变化。2 再说拖拽,拖拽也是需要判断拖拽区域,判断所有顶点是否在以鼠标位置为中心圆的拖拽半径,如果在园内的话,拖拽方向也是鼠标的当前坐标-鼠标上次坐标。...

2022-02-15 23:05:01 608

原创 简单弹簧的应用

上面3个图片就是对弹簧这种运动的基本应用。其实弹簧的原理很简单,公式就是胡克定律,高中的课程中有讲解,这里我们需要把公式转换成Unity里面具体的参数和方法。核心的原理是下面几段代码 float force = 0 - _angle; _velocity += _springForce * force * Time.deltaTime; _velocity *= 1 - _damp * Time.deltaTime;代码第一行是来计算返回默认点的力,默认初始值为0,第二...

2022-01-21 15:20:53 3106

原创 Unity 草的制作

如果把草当成一个一个的模型的话,我们在一个平面上铺满10000个草并且让他和一些物体进行交互的,如果用传统的做法,我们把每一个草上面挂载一个脚本的话,运行的时候你就会发现,这样帧率其实并不高的,在一个update里面每帧访问一个数组长度为10000的数组他的帧率其实都不会很高的,更何况我们还需要草动起来且还需要有一定的交互能力,如果纯粹用cpu来模拟的话可能会比较吃力,所以这里打算用GPU来模拟大量粒子运动和交互。unity提供了一种compute shader来处理大量计算。GPU在大量运算时候它的效率是

2021-09-17 18:34:10 2320

原创 彩球2048贴片实现

好久没有更新blog,趁着工作不是很忙来写一篇blog,之前玩游戏的时候玩到一款球球2048,遇到一个问题是如何在一个球上贴一个数字 并且这个数字还会变化 并不是固定的一些数字比如2,4,8,16等 后面会很大,如果做到2的32次幂那么美术需要出32张图片,如果后面越玩越后面的话可以说这个数字应该是比较大的,至于多大的话 美术是无法满足需求的,但是美术可以做一些基础的数字,比如0到9这样的数字 如果数字太大的可以用K,M,Q这样的字母加数字代替更大的数字。所以这里就需要动态的生成一些图片,同时需要一个可以接

2020-08-18 11:17:46 383

原创 UGUI 优化

1 首先是图集的打包,demo还是以消灭病毒里面素材来做一个测试来观察如何优化。我们发现Batches的值为6 ,然后图片没有打包成图集的情况。然后我们将这6张图片打成一张图集。这个时候我们发现Batches的值为1。我们知道减少Batches批处理的值可以适当的优化游戏。当然我们也不能把几张特别大的合成到一张图集里面,这就要具体美工给的图片具体分析不能一概而论,想上面一...

2019-10-16 16:10:02 346

原创 Unity 小结——1

好久没写blog最近把这一年乱七八糟的工作做个总结吧。这一年工作主要和开发板这块结合的比较多,公司要给别人做一些小游戏,然后为了节约成本,我们采用的Orange Pi PC2这样一块开发板,至于什么是Orange Pi 不知道的话这里有一个官网http://www.orangepi.org/orangepipc2/。其实就相当于一台手机不过跟手机不同的是他支持好多底层的接口。最初选择这个的原因是因...

2019-10-09 18:00:13 231

原创 Unity 消灭病毒(98K)—2

写完玩家的移动,接下来就开始写玩家的射击。玩家是一直射击的,然后射击有个间隔。所以在Update里面就只是一个时间一直减,定义这个类为VirusPlayerShoot。 public void OnUpdate() { if (_isStartShoot) { _totalTime += Time.deltaTime; ...

2019-07-21 21:14:42 1382

原创 Unity 消灭病毒(98K)—1

好久没有写博客今天更新一篇类似于飞机大战的游戏制作,先看一下游戏的截图。游戏基本还原了消灭病毒游戏功能,游戏总共有16种病毒分别为:吸附病毒,碰撞病毒,治疗病毒,飞镖病毒,防御病毒,放大缩小病毒,爆炸病毒,快速病毒,启动病毒,普通病毒,自身恢复病毒,减速病毒,吞噬病毒,三分病毒,追踪病毒,吸血病毒。病毒截图如下:首先编写飞机玩家的控制代码我们将其命名为VirusPlayerMo...

2019-07-18 16:08:41 1996

原创 吃鸡游戏——消息处理

前面写过一篇消息处理,那是是很早写的。之前的那种做法是一个字典中键值为string类型,值为Action来实现类与类之间解耦。这种方式存在一定的弊端,用字符串来做键书管理起来并不是很好,约束性不强。这里可以用type代替,这里用结构体的type来代替前面的字符串来进行强约束。这里跟以前一样得有一个字典,字典的键为Type,值肯定是一个方法的指针,这里可以用Action,同样也可以用接口,Actio...

2018-04-18 16:22:15 966

原创 一个简单的吃鸡背包编写——1

好久都没写博客。是时候来更新一篇一直想写的一个demo,前段时间网易出一个荒野行动。听说还是unity做的,所以自己没事做的时候就来写的玩玩。由于是个人开发所以网络端用的是一个Photon View插件来实现简单的联网同步操作。关于Photon View插件的运用,我会在接下来的几篇博客来介绍一下,今天首先写一个类似荒野行动的背包。之前给大家介绍了MVC及MVVM框架的中心思想,所以这里还是用MV...

2018-04-17 16:11:44 4221

原创 没用的响应式编程?

    首先搜索一波响应式编程的概念。响应式编程是一种面向数据流和变化传播的编程范式。这意味着可以在编程语言中很方便地表达静态或动态的数据流,而相关的计算模型会自动将变化的值通过数据流进行传播。多么难以理解的概念啊,举个例子说明一下。就是当我们在游戏中点击一个跳跃图标button的时候,玩家发生了跳跃动作,同时玩家的位置也发生了相应的变化,还有当角色等级提升的时候,攻击力,护甲等一系列属性也会发生...

2018-02-10 14:31:46 482 1

原创 unity 计时器

计时器的作用嘛就是简单的计时了,说白了就是一段时间一直减就行了,简单的代码如下。我们可以放在Update里面计时,同时我们也可以通过携程来计时,2中代码如下:

2017-09-25 10:08:11 1726

原创 RPG 游戏数值系统—2

接着前面所讲的RPG数值系统,前面讲到怎么添加一些基本属性然后怎么通过可视化的方法给每个人物进行配置他们所有属性,接下来就是怎么知道我的属性它的值是多少,例如当角色进入攻击状态的时候我们需要知道角色的攻击力,暴击概率,攻击速度,及暴击倍数,同时当角色进入被攻击状态的时候,如果角色受到的是魔法伤害我们需要知道角色的魔法抗性是多少,当敌军是物理攻击的时候,我们需要知道角色的护甲是多少。最后计算出消耗多

2017-09-11 16:43:04 2380

原创 RPG 游戏数值系统—1

今天讲一下做RPG游戏一个插件—RPGStatCollection,RPG游戏最主要的就是我们所谓的一些数值,就像英雄联盟一样,你选择每个角色的时候如果不带天赋和符文进去,每个角色都是存在基本的数值的,例如攻击力,护甲,攻击速度,法术强度,魔法抗性,血量,冷却缩减等一些数值。所以我们出装备,合成装备都是对这些数值的操作,当然有了厉害的这些数值没有有效的操作也是无法驾驭一个游戏的。这里讲的数值系统是

2017-09-09 14:55:54 7702

原创 随机数算法

今天给大家讲一下 最简单的随机数,例如杀了一个boss怪会掉落一件装备,这件装备呢可能是长剑,重斧,盾牌,弓箭等等这几种可能,但是每种可能都是有一定概率的,我们一般都不会给概率,假如我们先给他们的概率分别是10%,40%,20%,30%这样非要使得他们的概率和等于1,如果我们需要添加一种的话,那么久需要重新分配了,这样就会影响工作效率,所以一般的我们是给出他们的权重,例如分别为2,3,4,6这种比

2017-08-22 15:43:25 747

原创 unity 一个拼图demo(七巧板)和一个切割demo—2

前面好久之前只是讲到了七巧板的和切割的原理,这节就讲一下2个demo的主游戏逻辑的代码。先说一下切割demo的逻辑代码,首先我们的准备一个题库,这个题库最好做成Excel表,然后最好直接转成ScriptObject序列化的文件,如果大家有这方面的需要我也可以提供代码,还有一种简单的就是直接由Excel转json,然后通过json读数据这样显然跟家复杂并且比第一种方法慢些。题目的格式得自己去定了,就

2017-08-01 21:35:19 1918 1

原创 unity 贪吃蛇作战—2

今天接着上个讲,上次讲到了玩家蛇和BaseSnake类了,下面讲讲AI蛇了,这里我写的AI是比较简单了。AI蛇的AI逻辑是这样的,蛇主要存在2中状态,一种是漫游状态,漫游状态每隔多少秒,给蛇一个方向,然后蛇慢慢的旋转到给的方向。这里用的方法是前面讲到的行为那一节,简单的画个图解释一下

2017-07-21 18:05:03 691 1

原创 unity 贪吃蛇作战—1

前段时间看见有一个游戏比较火,一直没有时间模仿着写,最近空闲 抽出几天时间写写试试吧。做出来的只能算是一个demo吧。贪吃蛇的原理应该很简单吧,基本说一下,就是当蛇动起来的时候,蛇头的位置被重新赋值,蛇的第二段赋原先蛇头的位置,第三段赋原先第二段的的位置。所以原理其实很简单。就是一个数组每帧对数组进行修改,然后新对蛇段位置重新赋值。下面先给几张图片该项目只能算一

2017-07-20 11:20:31 964

原创 unity MVVM框架应用

好久没写博客,难得空闲一下写一篇博客。关于mvvm框架先简洁的介绍一下,所谓的m是模型层,v视图层,vm视图模型层,模型层具体就是我们建的具体的类,即纯粹是一个数据类,里面存在一些字段和属性,然后没有其他的。视图层嘛就是我们的ui了,即一个image,一个text,而视图模型就是填充视图层所需要的数据模型。即填充一个image需要一个图片的索引,填充一个text需要一个字符串,等等,所以视图模型层

2017-07-04 18:11:57 5841 1

原创 unity 一个简单的有限状态机

快几个月没写博客了,今天不知道是那根神经接错了。今天来跟大家讲一下一个比较简单实用的有限状态机。有限状态机看起来名字高大上似得,其实就是一堆if else,如果没有有限状态机的话我们就直接这样写了,using UnityEngine;using System.Collections;public class NewBehaviourScript : MonoBehaviour { p

2016-12-28 22:24:18 2923 1

原创 untiy 简单的shader应用

今天和大家分享一下一个shader的效果。先分享一波图看看我们这个效果该怎么写。这个效果就是我们今天要做的一个shader效果,其实他是个水波效果,当我们在池塘旁边,往池塘旁边扔进去一个石头,我们看池塘底的东西的时候,我们发现池底的东西是发生了弯曲的,所以我们这个效果就是来模仿现实生活中的这种简单的物理现象。我以前在gamejam上看到一款叫做鲤的游戏。当我看见他们做的那个水波的时候

2016-08-14 23:49:22 1451

原创 c# 继承的本质

今天和大家解释一下什么叫继承,估计好多人都只知道怎么用,对于大多数开发者来说,它应该比较熟悉,估计是作为面向对象的三大要素之一吧,所以这是很多人对于继承的最直接的认识吧。大学课本里老生常谈。出来工作又不断重复的使用。它总是和封装,多态交织在一起,形成比较复杂的局面。关于如何理解多层继承的机制,如何理解实现继承和接口继承的异同。如何理解继承和多态的关系,似乎都不是一件简单的事情。  我们先以动物

2016-08-09 22:27:00 2983 1

原创 unity 一个拼图demo(七巧板)和一个切割demo

好久没更新博客了,那么今天就来装一下b吧。还是先上一波图,看看我们到底要做什么。前面2张是切割的的demo,后面的这个是拼图,但是我们看到材质,这里的解释一下2个demo用的都是一个网格构建代码,所以才会出现这种情况,正确的做法应该是把添加uv的代码做个判断一下,把这个变量放到这个方法参数列表中,同时把它变成一个对外的方法。这里顺便给大家提一下封装的思想,厉害的程序员他们其实大部分的时

2016-08-02 23:25:09 6669 1

原创 unity 简单编辑器的扩展应用—1

这节简单讲一下一个简单的编辑器的应用。在后面会继续将一些编辑器扩展的东西。在菜单栏的扩展我就不讲了,因为那些都比较简单在百度上基本都可以找到的。也有很多人讲到那些扩展。这节先讲一下一个button扩展吧。我记得我在前面的项目中用到了这样一个简单的应用。   这是一个简单的效果图,当然我们还有一种更简单的方法来实现它,我们可以重新建一个类,让这个类继承Editor,然后让它来编辑我们图中这个

2016-07-25 23:06:58 815

原创 untiy 网格的应用—骰子的制作和技能冷却效果

这节讲一个比较简单的网格的应用,其实网格的作用其实很大的,网格直接关联的渲染的问题,我们知道做一个ui需要网格,在unity显示一张图片同样需要网格。我们知道当我们拖一张sprite把它放进我scence视图的时候,这张sprite的网格其实并不像我们想象的那么简单,它的网格并不是一个长方形,而是由很多三角形组成不规则的网格的,当然这很显然是不够优化的,因为它让我们多绘制了一些三角形,我们明明可以

2016-07-20 23:37:23 2347 1

原创 untiy 第二个逗比又无聊的跑酷demo

逗比刘真是菜啊,天天就知道写这种无聊的东西,写了也不一定有人看的。看了也不一定有人喜欢。喜欢也没有什么卵用啊。先分享一波图吧。大家第一眼看见是个什么?(逗比刘第一眼说 是精子小蝌蚪啊,逗比刘好邪恶啊)做一个这样的demo可以说基本用不到很多素材,最重要的素材就是那个圆圈,这个圆圈对于一个程序员来说画起来应该蛮简单的吧。前天我们讲到如果绘制一个2D的圆环,今天我们就绘制一个3D的圆环,如果我

2016-07-18 00:00:30 2544

原创 untiy 一个逗比并且有无聊的游戏制作

先分享一波图,咋们还是看一波图吧。 看完图了之后大家有什么感想,是不是觉得很简单啊,这么简单的游戏还做(感觉逗比刘真的是个逗比了啊,哎 我已经看不下去了)。这个美术很简单,总共就没有几张图。图中的,大家可以先想想一下 如果得到图中的一个圆圈。我们可以从美术哪儿得到啊(这逗比刘 问的啥问题,简直就是个大sb,其实逗比刘也可以画出来啊),大家如果观察仔细的话可以发现大圈和小圈他的那个环的宽度都

2016-07-16 19:19:28 2587

原创 untiy 2D 曲面地图动态生成

前面说要做个2D曲面,因为一直在找工作没时间,如果大家有机会可以帮小弟推荐推荐,小弟不胜感激。好言归正传了,开始讲今天的东西了,先截个图看看效果。图如下:第一张是在scence视图下的图,可以很清楚的看到这个地形的分布,第二张则是一个球在场景中的运行图,也就是我们的主角了。如果我们需要制作出一个曲面,毫无疑问的是我们得动态构造网格,然后给我们的网格贴uv。一个曲面是有很多个三角

2016-07-15 17:53:07 2254

原创 unity 图片资源导入优化

天天扯淡,都不知道写点什么,今天就分享一个国外大牛的一个unity 纹理压缩技术吧。本节的压缩算法叫做色度抽样算法。在数位图像处理领域中,色度抽样是指在表示图像时使用较亮度信息为低的分辨率来表示色彩(色度)信息。当对模拟分量视频或者YUV信号进行数字抽样时,一般会用到色度抽样。由于人眼对色度的敏感度不及对亮度的敏感度,图像的色度分量不需要有和亮度分量相同的清晰度,所以许多视频系统在色差通道上进行较

2016-07-08 11:20:22 4809

原创 untiy 2D角色控制器

这节讲讲类似马里奥,盗贼遗产,这些类似的游戏人物基本的控制方式。这里我用Prime31这个公司的插件改了一个比较小的控制脚本,博客结尾会给大家一份源码,先简单的讲一下2D人物控制器的原理,2D控制器可不像untiy 3D控制器那样,untiy官方帮我们封装了。所以这里就只能自己去写了,先贴出一张图。图中的场景时源插件中的场景,我就直接拿来用免得自己去摆了,图中有3中不同的障碍物,方块代表玩家,

2016-07-04 23:40:19 5935 1

原创 unity 网格切割算法讲解

算法主要的方法为    public static List> GetEndCuttingPolygonVerticles(List originPoints, Vector3 startPos, Vector3 endPos),list数组存的是网格的顶点,第二个参数和第三个参数表示切割线段的起始节点和线段的末节点,首先我们会判断线段两头的点是否在多边形内,下面我就不讲原理了,直接给代码吧,

2016-07-03 23:15:05 13183 5

原创 unity 内存优化

找工作之余又开始扯淡了,讲内存优化其实跟unity好像并没有半毛钱的关系,纯粹是一些.net框架的事,先将几个概念有助于我们理解unity和.net.Monos就像是一个神奇的酱汁,混合成Unity平台这个食谱,并且赋予了它跨平台的能力。 Mono是一个开源的项目,基于API(应用程序编程接口),说明书和来自微软.NET框架的通用库工具建立起了它自己(Mono)的框架和库.但是却几乎不能对

2016-07-03 22:12:49 4437

原创 unity 网格切割

前一节讲到了如何绘制一个多变形网格。还是先给大家看效果图,博客的结尾最后贴出工具类。效果图如下:大家看到的我用三种不同方向的切割方式,得出不同的子图和原图比较。下面具体分析其原理,给出分析图。  先看这样一张图,我们黑色数字标记的是顶点的添加顺序,我前面说了我们统一讲顶点的顺序改成顺时针(如果是添加顺序为逆时针,我们将它数组倒置即可)白色的点为横着的一条线和改图形产生的交点

2016-07-03 18:28:20 4883

原创 unity —脚本优化— 消息处理系统

我们经常会遇到在运行状态下去找到一个现有对象。在这个例子中,我们需要添加新的敌人到EnemyManagerComponent中,以便于在我们的场景中可以按我们想的任何方式来控制敌人对象。由于涉及到开销,我们需要可靠和快速的方法作用于对象来查找已经存在的对象,而不用Find()方法和sendmessage()方法时,我们又该怎么做呢。这节主要讲解如果不用find(),又该完成对象之间的调用呢。

2016-07-02 00:24:15 8201 1

原创 unity优化—资源优化

这节主要讲unity资源优化,先学习一个概念吧:资源管道,原始文件通过内容管道变成了一个可被Unity高效使用的中间文件 ,这不是Unity里面的一个概念,但Unity的工作行为和它很类似;Unity在导入资源的时候可以使用类型丰富的文件,这不意味着在我们生成的App中同样也是这些文件,资源通过Unity的资源管道变成了较为统一的格式。我们在导入资源的时候有很多参数可以调整,1 首先从

2016-07-01 00:50:13 14085 8

原创 网格的学习—5

前面我只讲到了整个算法的模拟过程,这节我们就讲到如何实现整个算法。首先第一步我们把添加点的顺序全部调成顺时针的。判断是否为顺时针的办法就是相邻3个点组成的2个向量的叉乘的值为正表示逆时针,为负为顺时针,这只是3个点的情况,但是针对所有点的我们的办法是相邻的2个点相对于坐标(0,0)组成的向量叉乘和的总和为正是表示逆时针,反之则为顺时针。代码如下:   public static float A

2016-06-30 23:57:05 670

原创 网格的学习—4

前面讲到怎么去绘制一个三角形,从而延伸到一个四边形,继而就可以绘制一个6面体。这节我们讲一个麻烦点的,这节我们给出一组顶点,然后绘制出多边形。例如如何绘制一个六边形。绘制不同形状的图形,绘制2D曲面地形。我们知道要绘制一个多边形首先按照顺序添加点,然后给出每个顶点在一个三角形中的绘制顺序即可,其中最重要的就是给出绘制顺序,绘制顺序是每3个一组,即绘制一个三角形对应一组。那么问题来了 怎么得到三角形

2016-06-30 01:46:10 628

原创 unity优化 —脚本优化2

接着前面脚本优化讲,我们还是深入的讲解脚本该如何优化。在其它的一些情景中,我们希望组件或对象被禁用后,他们能够离玩家足够远,这样他们可能是勉强可见的,但是又离对象特别远。一个贴切的例子是AI生物的巡逻,我们可以在一定的距离内看见,但是我们不需要它们处理任何事情。下面的代码是一个简单的程序,用来定期检测到目标的总距离并且如果靠的太远就禁用自身。     [SerializeField] Game

2016-06-29 23:42:01 641

unity 俄罗斯方块 贪吃蛇 五个小游戏合集

格子类型游戏小合集(俄罗斯方块,贪吃蛇,祖玛,方程式赛车)

2018-09-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除