---恢复内容开始---

已经有很长一段时间没做项目了上半年大多数时间都荒废在王者荣耀,哈哈,S8赛季也上了王者,美滋滋

转回正题,公司需要开个新项目,需要把原有的moba游戏,改成类似绝地求生那玩法

原有moba项目是用unity 做的,本人已经有很长一段时间没接触,颓废哎~~,还好经过几天努力基本熟悉了

绝地求生游戏 基本玩法就是把100个玩家放到一个荒岛上,每过几分钟岛上就会出现毒雾圈,然后慢慢缩小,

直到剩下最后一个玩家,就是最后冠军,我目前就是需要实现毒雾圈功能

首先需要在游戏场景里面放置一个毒雾圈prefab,这个我是从原先项目里面暂时借用的美术资源,毒雾圈开始时候放置在(0,0)位置

初始化大小 UIEffectItem_Home_Scale = new Vector3(470.0f, 200.0f, 470.0f);//场均毒雾初始大小,

怎么计算出scale 大小呢,我通过以下代码实现

在 void OnDrawGizmos() 里面放入以下代码

// for hs
Vector3 center = Vector3.zero;
Gizmos.color = Color.yellow;
int r = 140;
for (int i = 0;i < 360;i++)
{
float x1 = center.x + r * Mathf.Cos(i * Mathf.PI / 180);
float z1 = center.z + r * Mathf.Sin(i * Mathf.PI / 180);
Vector3 pos1 = new Vector3(x1, 0, z1);

float x2 = center.x + r * Mathf.Cos((i + 1) * Mathf.PI / 180);
float z2 = center.z + r * Mathf.Sin((i + 1) * Mathf.PI / 180);
Vector3 pos2 = new Vector3(x2, 0, z2);
Gizmos.DrawLine(pos1, pos2);
}

在场景里面画出毒雾圈(黄色线条),逐步调整 毒雾圈scale场景,得出 缩放比例(470.0f, 200.0f, 470.0f);

放置好毒雾圈后,还需要显示在小地图上面,原本设想也可以在场景里面放置一个圆圈prefab

但是碰到一个问题,就是缩放时候会出现圆圈的边缘同时放大,十分困扰,于是问百度说可以用shader画出来

效果下图,只要设置好画的原点和半径就可以了

下面就是画圆圈的关键shader代码

bool circle(vec2 pos, vec2 center, float radius, float3 color, float antialias) { 
//float d = length(pos - center) - radius;
//float t = smoothstep(0, antialias, d);
//return vec4(color, 1.0 - t);

if (abs(length(pos - center) - radius) < 2)
{
// In the circle
//return vec4(color, 1.0);
return true;
}
else
{
//return vec4(0, 0, 0, 0);
return false;
}
}

shader学习参考 http://blog.csdn.net/candycat1992/article/details/44039077 多谢这个博主 写得简单明了

大概学习1天也能基本明白shader怎么写了

写好shader后,新建一个material 命名为circle.mat 再把shader 拖进入circle.mat

在场景里面建立一个gameobject 加入image 组件,把circle.mat拖入image组件的material里面。

UnityEngine.UI.Image image = UIBattleManager.Self.duwucircle.GetComponent<UnityEngine.UI.Image>();

image.material.SetVector("_safeParameters", new Vector4(center.x, center.y, safe_r * getmapscale(), 10));

代码里面这样就可以控制shader参数(也是问百度才知道这样写的)

好了,几个关键步骤都写完了,剩下需要补齐 坐标移动,坐标转动的代码需要读者自己去动手好了

资料参考

http://blog.csdn.net/candycat1992/article/details/44039077

http://blog.csdn.net/candycat1992/article/details/44244549

在moba游戏里面模拟实现绝地求生毒雾圈功能的更多相关文章

  1. 落入绝地求生的Python神仙,实现绝地求生无后座!

    叙述 绝地求生已经出来那么久了,大家应该都晓得如今的游戏情形很是差 .特别在高端局,神仙满天飞 搞得很多人类玩家很是没有游戏体验! 由于绝地求生的火爆,繁衍出许多外挂流传于各个地方.飞机上.网吧内,各 ...

  2. 洗礼灵魂,修炼python(41)--巩固篇—从游戏《绝地求生-大逃杀》中回顾面向对象编程

    声明:本篇文章仅仅以游戏<绝地求生>作为一个参考话题来介绍面向对象编程,只是作为学术引用,其制作的非常简易的程序也不会作为商业用途,与蓝洞公司无关. <绝地求生>最近很火,笼络 ...

  3. kaggle——绝地求生游戏最终排名预测

    绝地求生游戏最终排名预测 知识点 数据读取与预览 数据可视化 构建随机森林预测模型 导入数据并预览 先导入数据并预览.本次实验同样来源于 Kaggle 上的一个竞赛: 绝地求生排名预测 ,由于原始数据 ...

  4. Unite 2017 | 从《闹闹天宫》看MOBA游戏里的网络同步技术

    http://mp.weixin.qq.com/s/0v0EU79Q6rFafrh8ptlmhw 在Unite 2017 Shanghai案例分享专场,来自蓝港互动<闹闹天宫>项目组的主程 ...

  5. SUST OJ 1642: 绝地求生—死亡顺序

    1642: 绝地求生-死亡顺序 时间限制: 1 Sec  内存限制: 128 MB提交: 81  解决: 53[提交][状态][讨论版] 题目描述 最近陕西科技大学六公寓的小东同学深深的入迷了一款游戏 ...

  6. MOBA游戏的网络同步技术

    转自:http://www.gameres.com/750888.html 在5月13日Unite 2017 案例分享专场上,蓝港互动<闹闹天宫>项目组的主程序陈实分享了MOBA游戏的网络 ...

  7. 绝地求生大逃杀BE启动失败,应用程序无法正常启动

    今日更新绝地求生大逃杀后部分客户反馈绝地求生点击启动提示BE安装,应用程序无法启动 问题原因:经过排查发现,客户开启过超级工作站运行过游戏,在系统镜像包中保留了旧版的BE服务,致使新版BE无法安装,冲 ...

  8. 《绝地求生大逃杀》BE错误怎么办 BE服务未正常运行及安装失败解决方法

    <绝地求生大逃杀>BattlEye Launcher是游戏的反作弊程序,也是启动过程中做容易出现错误的,今天小编带来“爆锤吧务”分享的<绝地求生大逃杀>BE服务未正常运行及安装 ...

  9. MOBA 游戏技能系统设计 2.0

    随着游戏开发的完整度提升,技能系统的设计复杂性也越来越高,导致了用模板方式的配置方法和处理方法会导致以下几个问题: 代码冗余 排错困难 配置项冗余 熟悉业务流程时间长 扩展性低 经过我思考决定重写之. ...

随机推荐

  1. ThinkPHP中使用PHPMailer邮件类

    第一步.添加PHPMailer类库将下载后的文件解压,将PHPMail目录移动至ThinkPHP目录中的Vendor内.(请确保class.phpmailer.php文件就在ThinkPHP\Vend ...

  2. iptables使用实践

    1.iptables 本质上是一组规则,报文从端口接收到之后,按照规则的顺序进行匹配,一旦匹配上则执行动作,后续就不再匹配. 2.为了体现出优先级,iptable分为4个表,5个链,如下: 优先级顺序 ...

  3. 51nod 1522 上下序列

    题目描述 现在有1到n的整数,每一种有两个.要求把他们排在一排,排成一个2*n长度的序列,排列的要求是从左到右看,先是不降,然后是不升. 特别的,也可以只由不降序列,或者不升序列构成. 例如,下面这些 ...

  4. SAP 发送邮件 面向对象

    REPORT ZMMR0068_YYN. CONSTANTS: gc_tab TYPE c VALUE cl_bcs_convert=>gc_tab, "CL_ABAP_CHAR_UT ...

  5. 使用phpExcel导出excel时,报500错

    在自己本地导出excel没有问题,但是放到服务器出现500的错误! 解决方法:查看控制器引用的header文件,是否包含空格,如下: header('Pragma:public');          ...

  6. 安装阿里Java代码规约插件

    概述 2017年10月14日杭州云栖大会,Java代码规约扫描插件全球首发仪式正式启动,规范正式以插件形式公开走向业界,引领Java语言的规范之路.目前,插件已在云效公有云产品中集成,立即体验!(云效 ...

  7. Python 初学者 入门 应该学习 python 2 还是 python 3?

    许多刚入门 Python 的朋友都在纠结的的问题是:我应该选择学习 python2 还是 python3? 对此,咪博士的回答是:果断 Python3 ! 可是,还有许多小白朋友仍然犹豫:那为什么还是 ...

  8. Linux入门(10)——Ubuntu16.04使用pip3和pip安装numpy,scipy,matplotlib等第三方库

    安装Python3第三方库numpy,scipy,matplotlib: sudo apt install python3-pip pip3 install numpy pip3 install sc ...

  9. 【转】认识物理I/O构件- 主机I/O总线

    在数据离开系统内存总线后,它通常传输到另一条总线,即主机I/O总线.在今天的产品中,最常见的主机I/O总线是PCI总线,但也存在着几种其他的总线,如S -总线,EIS A总线及VME总线.主机I/O总 ...

  10. 跟着弦哥学人工智能2—HAND-CRAFTED RULES实现的人工智能及其缺陷

    隔壁有个妹纸喷我​,好高兴....给她回复了下 哎呀,没想到是个妹纸,其实我就随便那么一说,没合计妹纸还专门写个檄文声讨我,受宠若惊其实你的评论一看就比较专业,所以我就去你博客大概扫了一眼,发现个大问 ...