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

已经有很长一段时间没做项目了上半年大多数时间都荒废在王者荣耀,哈哈,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

转载于:https://www.cnblogs.com/maikkk/p/7846890.html

在moba游戏里面模拟实现绝地求生毒雾圈功能相关推荐

  1. 绝地求生服务器未响应怎么办,绝地求生游戏崩溃解决方法 绝地求生崩溃怎么办...

    原标题:绝地求生游戏崩溃解决方法 绝地求生崩溃怎么办 A PLAYERUNKNOWN'S BATTLEGROUNDS process has crashen! We are very sorry th ...

  2. Pyhon面向对象-模拟实现绝地求生战斗场景

    c课工场 python开发基础,由于做的时候疯狂踩坑就分享一下课本的作业. 1.<绝地求生>是现在非常热门的射击类游戏.根据面向对象的编程思想,模拟实现玩家战斗的场景:在这个场景中,有玩家 ...

  3. 绝地求生游戏服务器无响应,绝地求生大逃杀游戏不流畅怎么办 绝地求生服务器问题解决办法...

    国庆中秋双节假日,让<绝地求生大逃>的玩家人数剧增,很多小伙伴在玩游戏的时候会遇到画面不流畅,甚至游戏崩溃的情况,这一方面是游戏优化的问题,还有就是在线人数剧增导致服务器压力过大. 绝地求 ...

  4. 绝地求生游戏总显示服务器崩溃,绝地求生总是游戏崩溃怎么办_绝地求生游戏崩溃解决办法_绝地求生_我爱秘籍...

    相信有很多网友在玩绝地求生时总是出现游戏崩溃的现象,但是又不知道该如何解决.下面小编为大家带来绝地求生游戏崩溃解决办法,希望对大家有所帮助. 内容来源:PUBG官博 绝地求生游戏崩溃解决办法 部分玩家 ...

  5. 绝对逃生游戏的计算机要求,绝地求生需要什么配置 绝地求生电脑配置详解

    绝地求生是当下最热门的游戏之一,但由于配置要求较高,游戏优化差劲等问题,导致很多玩家出现电脑跟不上,游戏体验不足等情况,在这里给大家详细介绍一下绝地求生所需要的电脑配置要求,大家可以认真查看一下,看看 ...

  6. 绝对逃生游戏的计算机要求,绝地求生电脑最低需要什么配置能玩_电脑配置要求一览_3DM网游...

    绝地求生作为当最为火热的一款射击逃生类型网游,有越来越多的小伙伴门加入其中.该游戏由于画质原因,对电脑配置要求较高.很多小伙伴因为电脑配置过低,进入游戏后卡屏掉线时有发生.那么绝地求生最低需要什么配置 ...

  7. 《绝地求生》难逃衰落之命,吃鸡游戏迈入中老年?

    要问2017年最火的词,非"吃鸡"莫属了,而最火的游戏必然是使"吃鸡"这一玩法发扬光大的<绝地求生:大逃杀>了.<绝地求生:大逃杀>创造 ...

  8. 从绝地求生到新晋网红,看大逃杀游戏的生死存亡之道

    江山代有人才出,各领风骚数百年. 去年大逃杀游戏出现过两匹黑马,一是<绝地求生>,二是<堡垒之夜>,今年大逃杀游戏又出现了一款名为<人渣>的爆款游戏.Steam官方 ...

  9. 计算机管理中be启动不了,绝地求生BE服务启动失败解决方法 绝地求生游戏无法启动怎么办...

    绝地求生BE服务启动失败解决方法,绝地求生游戏无法启动怎么办?绝地求生BE服务启动失败怎么解决?想必不少友友都不太清楚吧?下面跟随小编冉冉一起去看看吧! 绝地求生BE服务启动失败怎么办 过一阵窗口消失 ...

最新文章

  1. ArrayList源码学习
  2. eclipse的默认(打开)编辑器的更改
  3. CentOS7.1 KVM虚拟化之虚拟机添加磁盘
  4. 【Spring注解系列09】Spring初始化和销毁接口-InitializingBean与DisposableBean
  5. Concert Tour(Uvalive 6853)
  6. Perl 语言入门6-9
  7. .net学习榜样的博客
  8. 如何在MySQL中缩小/清除ibdata1文件
  9. tar、tar.gz、tar.Z、tgz、bz2、bin软件包的安装
  10. Gambit中,interface和interior的区别
  11. 使用itextpdf切割、合并pdf以及合并多个图片成为pdf
  12. Javaweb-标签介绍
  13. ionic 实时调试android手机
  14. pdf照片显示正常打印时被翻转_2020年广东二级建造师准考证打印常见问题
  15. logstash 时间获取失败(yyyy-mm-dd失效)
  16. JAVA集合和字符串互转
  17. html3d粒子球,Canvas粒子系统:3D球体
  18. 结合进化心理学,解析陌生交友产品的三大问题
  19. 利用PHP开发的一款万能、表白墙系统部分代码片段
  20. ZT:老郭的《闷坐无聊偶感于怀》,力挺老郭

热门文章

  1. 菜鸟的树莓派Raspberry Pi学习之旅(一)——认识树莓派硬件篇
  2. js刷新页面和刷新打开自己的父页面
  3. 计算机动画_3dsmax的使用(二)
  4. 【Python | opencv+PIL】常见操作(创建、添加帧、绘图、读取等)的效率对比及其优化
  5. 百度地图切图工具的应用实例
  6. OpenBlas API整理
  7. 经纬度坐标转为度分秒
  8. Windows+Ubuntu20.04双系统安装详细教程
  9. 360加固框架Gradle实现
  10. 微信小程序JS字符串操作方法汇总,包含切割截取split,合并字符串join,连接字符串concat,返回指定字符串charAt,提取字符串substring等