Unity实现爆炸的伤害值计算
这种方式常用于对战类的游戏,比如FPS中的手雷,坦克对战的炮弹等。距离爆炸中心越紧,伤害越高。在Unity中,通常以这类爆炸物为中心,计算爆炸范围内部的有效伤害物体,然后进行有关处理。
先给核心的函数:
public static Collider[] OverlapSphere(Vector3 position, float radius, int layerMask = AllLayers, QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal);
该函数返回一position为中心,radius为半径的,指定layer类型的GameObject的数组
参数说明:
position
:一般是爆炸体的位置radius
:爆炸半径layerMask
:可以被毁伤的layer- 最后一个默认即可,一般不用。
然后再根据距离中心点的范围,进行比例伤害计算即可。
Collider[] colliders = Physics.OverlapSphere (transform.position, m_ExplosionRadius, m_TankMask);for (int i = 0 ; i < colliders.Length ; ++i){Rigidbody targetRigidBody = colliders[i].GetComponent<Rigidbody> ();if (!targetRigidBody)continue;// 添加爆炸产生的力targetRigidBody.AddExplosionForce (m_ExplosionForce, transform.position, m_ExplosionRadius);TankHealth targetHealth = targetRigidBody.GetComponent<TankHealth> ();if (!targetHealth)continue;float damage = CalculateDamage (targetRigidBody.position);targetHealth.TakeDamage (damage);}
补充一个爆炸力的函数,模拟爆照产生的影响:
SWITCH TO MANUAL
public void AddExplosionForce(float explosionForce, // 爆炸力的大小Vector3 explosionPosition, // 爆炸点的范围float explosionRadius, // 爆炸半径float upwardsModifier = 0.0f, ForceMode mode = ForceMode.Force);
Unity实现爆炸的伤害值计算相关推荐
- Unity炸弹爆炸伤害(群攻伤害)
Unity炸弹爆炸伤害(群攻伤害) https://www.cnblogs.com/jqg-aliang/p/4605944.html 群攻伤害指在一定范围内同时对多游戏对象按距离衰减计算伤害.Uni ...
- 在OpenCV环境下写的灰度图像二维傅里叶换,幅值计算,频谱平移和将数值归一化到0到255区间的四个函数
图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 灰度图像的二维傅里叶变换(cv_gray_fft ...
- C++五子棋(四)——走棋原理及权值计算
原理 计算 计算每个落子点的**"权值"**,找到权值最大的落子点 对于每个空白点,分别计算周围的八个方向 不妨以该空白点作为参照原点,以水平向右作为X轴正方向,以竖直向下为Y轴正 ...
- python 实现大文件md5值计算
参考:python 实现大文件md5值计算_ddw6022的博客-CSDN博客 python比较两个文本文件是否相同 - douzujun - 博客园 用python 正确计算大文件md5 值 - P ...
- 指针c语言求电阻的并联值,计算电阻使之符合要求值,,“简单”的难题!!!...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 我的想法是这样的: 把电阻拿在手上,住地上扔,地上有一个N格的盒子(有多少个电阻那个盒子我就假定多少格),格子里的电阻全部并联,格子间全部串联,没有电阻的 ...
- 《恋上数据结构第1季》哈希表介绍以及从源码分析哈希值计算
哈希表(Hash Table) 引出哈希表 哈希表(Hash Table) 哈希冲突(Hash Collision) JDK1.8的哈希冲突解决方案 哈希函数 如何生成 key 的哈希值 Intege ...
- Opencv(C++)笔记--模板匹配cv::matchTemplate()和最值计算cv::minMaxLoc()
目录 1--模板匹配 1-1--OpenCV API 1-2--六种匹配方法 1-3--代码实例 2--最值计算 2-1--OpenCV API 1--模板匹配 使用模板图像与原图像进行匹配,Open ...
- 一元三次函数的最值计算
题目要求: 设计一个类,该类可以表示一个一元三次函数. 1.该类数据成员包括:函数的参数.变量的取值区间.函数在该区间内的最大值和最小值. 2.该类成员函数包括:求最大值.求最小值. 3.编写一个主程 ...
- 6.22 Java练习(根据输入的值计算BMI的值,根据标准判断BMI的值并给出相应健康提示。)
[练习] 题目要求:BMI指数(身体质量指数,英文为BodyMassIndex,简称BMI),是用体重公斤除以身高米平方得出的数字是目前国际上常用的衡量人体胖瘦程度以及是否健康的一个标准.它的计算公式 ...
最新文章
- 智能跳过节假日算法java_java计算两个日期之前的天数实例(排除节假日和周末)...
- MySQL字符集编码
- 解决QueryTask执行中的网络请求错误
- Mvn+Jetty启动项目
- jQuery Mobile和PhoneGap混合开发
- ASP.NET2.0数据操作之创建业务逻辑层
- 属性 方法c语言,C语言如何实现C++中对象属性和方法
- java序列化深克隆_如何在内存序列化中使用Java深克隆对象
- Eclipse 插件开发 向导
- 第15届创新英语大赛范文
- [转]我们都是花栗鼠
- ASP.Net 2 入门(一)――用户登录和注销
- java xlsx读写_java中怎样从Excel中读写数据
- CGI与ISAPI的区别
- 如何打开计算机本地组策略编辑器
- 公共数据库介绍~datahub
- 今日头条Android适配方案,android 今日头条的屏幕适配理解
- vue3+vite UC浏览器兼容
- 无执照开通微信商家收款码0.38%费率——步骤详细图解。
- javaWeb学习笔记(尚硅谷旧版+新版)