射击类游戏--射击辅助线的实现
最近在项目中碰到一个问题,炮台再射击物体的时候,要生成一个炮台和目标的辅助线。类似于捕鱼类游戏,在锁定目标的情况下,生成的辅助线。
因为项目是3D的,所以在生成这个辅助线的时候,思考了一个下午,才得以实现。效果如下图:
移动的Cube为锁定的目标,不懂得Cube为射击点。小球 为辅助线。
通过计算射击点和目标的距离,来计算得到应该生成的小球个数,每次改变物体的位置,重新计算小球个数,少的小球,生成放到对应位置,多的小球销毁。该示例在X轴和Z轴正半轴组成的平面有效。
初次生成辅助线代码:
if (angle>90){angle = 180 - angle;num = Mathf.Floor(dis / 3);for (int i = 0; i < num; i++){float x = oriPoint.position.x - 3 * (i + 1) * Mathf.Cos(Mathf.Deg2Rad * angle);float z = oriPoint.position.z + 3 * (i + 1) * Mathf.Sin(angle * Mathf.Deg2Rad);GameObject obj = Instantiate(_prefab, new Vector3(x, 0, z), Quaternion.identity);obj.transform.SetParent(_parent);SubLineList.Add(obj);}}else{num = Mathf.Floor(dis / 3);for (int i = 0; i < num; i++){float x = 3 * (i + 1) * Mathf.Cos(Mathf.Deg2Rad * angle) + oriPoint.position.x;float z = 3 * (i + 1) * Mathf.Sin(angle * Mathf.Deg2Rad) + oriPoint.position.z;GameObject obj = Instantiate(_prefab, new Vector3(x, 0, z), Quaternion.identity);obj.transform.SetParent(_parent);SubLineList.Add(obj);}}
目标移动后的处理:
if (num < Mathf.Floor(dis / 3)) {float NowAngle= Vector3.Angle(endPoint.position - oriPoint.position, Vector3.right);if (NowAngle>90){NowAngle = 180 - NowAngle;for (float i = num; i < Mathf.Floor(dis / 3); i++){float x = oriPoint.position.x - 3 * (i + 1) * Mathf.Cos(Mathf.Deg2Rad * NowAngle);float z = oriPoint.position.z + 3 * (i + 1) * Mathf.Sin(NowAngle * Mathf.Deg2Rad);GameObject obj = Instantiate(_prefab, new Vector3(x, 0, z), Quaternion.identity);obj.transform.SetParent(_parent);SubLineList.Add(obj);}}else{for (float i = num; i < Mathf.Floor(dis / 3); i++){float x = 3 * (i + 1) * Mathf.Cos(Mathf.Deg2Rad * NowAngle) + oriPoint.position.x;float z = 3 * (i + 1) * Mathf.Sin(NowAngle * Mathf.Deg2Rad) + oriPoint.position.z;GameObject obj = Instantiate(_prefab, new Vector3(x, 0, z), Quaternion.identity);obj.transform.SetParent(_parent);SubLineList.Add(obj);}} num = Mathf.Floor(dis / 3);}if (num > Mathf.Floor(dis / 3)) {Debug.Log("Num:" + num + " Other:" + Mathf.Floor(dis / 3));//销毁for (int i = 0; i < num-Mathf.Floor(dis/3); i++){Destroy(SubLineList[SubLineList.Count - 1]);SubLineList.RemoveAt(SubLineList.Count - 1);}num = Mathf.Floor(dis / 3);}}
具体Demo:https://download.csdn.net/download/hnzmdlhc/11170156
射击类游戏--射击辅助线的实现相关推荐
- fps射击HTML网页游戏,关于Unity中FPS第一人称射击类游戏制作(专题十)
当前Unity最新版本5.6.3f1,我使用的是5.5.1f1 FPS第一人称射击类游戏实例 场景搭建 1.创建Unity项目工程和文件目录,保存场景 2.导入人物模型和子弹碎片的资源包charact ...
- 优秀课程案例:使用Scratch制作一个射击类游戏-360度旋转射击!
点击上面微信号关注我关注我哟每天坚持推送文章,争取做到日更,喜欢的可以设置星标,并分享点赞我们的文章,非常感谢大家的支持,您的点击的在看就是我们的动力! 今天我们来分享一个射击类游戏的案例.同时大家持 ...
- 大型3d射击类游戏源码【突击风暴】,中文版本,可私服
<突击风暴>(英文名称:Sudden Attack)是由韩国GAMEHI公司制作,盛大游戏运营的第一人称射击类网络游戏.<突击风暴>于2011年6月9日开服,2012年12月3 ...
- Java游戏开发——飞行射击类游戏
使用到的素材文件夹: 素材说明:bg0.jpg是背景图片.bomb_enemy是敌机爆炸时按顺序播放的四帧图片,bullet_0.png是子弹图片,enemy_alive.png是敌机图片,playe ...
- ios射击类游戏简单代码射击
ios射击类游戏简单代码射击 之后会持续的更新,学习的同学请关注,共同学习 main.c #import <Foundation/Foundation.h> #import "S ...
- Unity3D休闲射击类游戏《Survival Shooter》完整源码
Unity3D休闲射击类游戏<Survival Shooter>完整源码分享给大家学习,这个对于那些想要制作u3d射击类游戏有很大帮助. 运行环境是:Unity5.3.1 下载地址: ht ...
- 视频教程-Cocos2d-x 3.x项目实战:星空大战(射击类游戏)-Cocos
Cocos2d-x 3.x项目实战:星空大战(射击类游戏) 东北大学计算机专业硕士研究生,欧瑞科技创始人&CEO,曾任国内著名软件公司项目经理,畅销书作者,企业IT内训讲师,CSDN学院专家讲 ...
- Cocos2d-x 3.x项目实战:星空大战(射击类游戏)-李宁-专题视频课程
Cocos2d-x 3.x项目实战:星空大战(射击类游戏)-17683人已学习 课程介绍 本课程是<从零开始掌握Cocos2d-x 3.0(基于3.0正式版) >课程配套的 ...
- 非常经典的飞行射击类游戏飞离神庙源码
非常经典的飞行射击类游戏飞离神庙android源码,源码是从安卓教程网android.662p.com分享过来的,该游戏源码实现了一款很不错的飞行射击类游戏,飞离神庙游戏,游戏的操作玩法简单,跟我们平 ...
最新文章
- PointNet++论文个人理解
- Silverlight 开发入门1
- python笔记:jieba(中文分词)
- vs如何实现tcp连续发送多条消息_消息队列之 RabbitMQ
- best wavelet guide
- mysql有类似dbms_output.pu_line();_使用MySQL,SQL_MODE有哪些坑,你知道么?
- mysql 变量作表名查询_使用MySQL函数变量作为表名查询
- Oracle12c部署,允许远程访问
- JavaScript学习(四十七)—构造方法创建对象的不足
- 拜托!HTML渲染background-image的时候,url请一定加上‘ ‘(单引号)
- python自学月收入20k_每天自学2小时,18周便可月入20K,437集python自学资料拿走不谢...
- java byte转integer_Java 八大基本数据
- android 谷歌地图离线访问,Android版谷歌地图更新 新增离线浏览功能(图)
- Linux学习--CentOS可视化配置网络
- 黑苹果日记六(双系统引导)
- 操作系统漏洞检测与利用
- 统计bed文件下的reads数目和GC含量
- Photoshop for deepin.deb
- 企鹅java游戏下载安装_飞翔企鹅游戏下载
- 童年记忆中的优良环境
热门文章
- PL/SQL 工具远程连接Oracle数据库方法,plsql免安装oracle客户端直接配置oci实战演示
- 苹果电池测试软件原理,苹果手机电池检测软件有哪些?
- 微信小程序_文档_04_框架_视图层_WXS_WXSS
- 图像处理———图像的几何变换原理及实现
- 第一个iOS应用 —— Hello world!
- 高中关于人工智能方面的课题_人工智能课题及其认识意义.doc
- android好用的NFC软件,5个有用的NFC应用程序为Android,以利于NFC | MOS86
- Java并发工具辅助类代码实例
- Android 蓝牙监听与扫描
- 联合国儿童基金会宣布与微软达成新合作