Unity2D——捕鱼,炮台锁定辅助线

2023-11-21 19:50

本文主要是介绍Unity2D——捕鱼,炮台锁定辅助线,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        无论是愤怒的小鸟还是泡泡堂,都需要一定的辅助线,捕鱼也不例外,在锁定鱼儿的时候,亦需要辅助线连接炮台与被锁定的鱼儿。

如图所示,创建场景及对象

其中“Image”是待生成泡泡的父体,调整其尺寸(50,1000),位置(0,500,0)

创建一个脚本,CSDN.cs,并添加到“Paotai”对象上,如图所示

其中“paopao”是Resources中的预制体,代码如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class CSDN : MonoBehaviour {Vector3[] Pos;public GameObject Prefab;//鱼public GameObject PaopaoParent;//泡泡父体bool _move = false;//鱼儿是否可移动public GameObject paopao;//泡泡预制体List<GameObject> paopaonum = new List<GameObject>();int oldnum = 0;//目前已显示的泡泡数void Start(){for (int i = 0; i < 20; i++)//生成连线中的泡泡{GameObject go = GameObject.Instantiate(paopao) as GameObject;go.transform.parent = PaopaoParent.transform;go.transform.localScale = Vector3.one;go.transform.localPosition = new Vector3(0, -500 + 80 * (i + 1), 0);go.gameObject.SetActive(false);paopaonum.Add(go);}}void Update(){if (_move){Vector3 lookDirect = Pos[1] - Prefab.transform.position;Quaternion oldQ = Quaternion.LookRotation(Vector3.forward, lookDirect);float oldz = oldQ.eulerAngles.z;Prefab.transform.eulerAngles = new Vector3(0, 0, oldz);//修改鱼儿游动方向Prefab.transform.position = Vector3.MoveTowards(Prefab.transform.position, Pos[1], 50 * Time.deltaTime);//鱼儿移向目标位置MovePaopao(this.transform.position, Prefab.transform.position);//显示和隐藏相对泡泡个数}}public void OnButton(int index){switch (index){case 0:Pos = new Vector3[2];for (int i = 0; i < 2; i++)//随机生成鱼儿可移动的初始位置及目标位置{int _x = Random.Range(-300, 300);int _y = Random.Range(-600, 300);Pos[i] = new Vector3(_x, _y, 0);}Prefab.transform.position = Pos[0];_move = true;//可移动break;}}void MovePaopao(Vector2 v1, Vector2 v2)//v1炮台位置,v2鱼的位置{float dis = Vector2.Distance(v1, v2);float num = Mathf.Floor(dis / 80);//取整,舍去小数点后数字Vector2 targetDir = v2 - v1;float fireangle = Vector2.Angle(targetDir, Vector3.up);if (v2.x > v1.x){fireangle = -fireangle;}this.transform.eulerAngles = new Vector3(0, 0, fireangle);//根据鱼儿位置更改炮台指向角度if (oldnum != (int)num){if (oldnum < (int)num)//当鱼儿游向远处时,显示泡泡{for (int i = oldnum; i < (int)num; i++){paopaonum[i].gameObject.SetActive(true);}}else if (oldnum > (int)num)//当鱼儿游向近处时,隐藏泡泡{for (int i = (int)num; i < oldnum; i++){paopaonum[i].gameObject.SetActive(false);}}oldnum = (int)num;}}
}

对“Button”的设置

1:选择“Button”对象,点击“+”,2:将“Paotai”对象拖入2中,3:选择CSDN中的Button(),4:设置为0;

这篇关于Unity2D——捕鱼,炮台锁定辅助线的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/404687

相关文章

用Unity2D制作一个人物,实现移动、跳起、人物静止和动起来时的动画:中(人物移动、跳起、静止动作)

上回我们学到创建一个地形和一个人物,今天我们实现一下人物实现移动和跳起,依次点击,我们准备创建一个C#文件 创建好我们点击进去,就会跳转到我们的Vision Studio,然后输入这些代码 using UnityEngine;public class Move : MonoBehaviour // 定义一个名为Move的类,继承自MonoBehaviour{private Rigidbo

MySQL中一致性非锁定读

一致性非锁定读(consistent nonlocking read)是指InnoDB存储引擎通过多版本控制(multi versionning)的方式来读取当前执行时间数据库中行的数据,如果读取的行正在执行DELETE或UPDATE操作,这是读取操作不会因此等待行上锁的释放。相反的,InnoDB会去读取行的一个快照数据 上面展示了InnoDB存储引擎一致性的非锁定读。之所以称为非锁定读,因

半年高达552亿元,锁定云第一,中国电信天翼云紧追不舍

【科技明说 | 科技热点关注】 刚才我注意到中国电信公布2024年中期业绩,报告期内,中国电信实现营业收入为人民币2660亿元,同比增长2.8%,其中服务收入为人民币2462亿元,同比增长4.3%;净利润为人民币218亿元,同比增长8.2%。 其中亮点,2024年上半年,天翼云保持快速增长,收入达到了552亿元,同比增长20.4%,占服务收入比升至22.4%,市场头部地位进一步巩固。 为

maven学习笔记【解除js等文件的锁定】

默认情况下,jetty服务器运行期间是无法修改JS,CSS等静态文件的,必须要先关闭jetty服务器,再修改,再启动,如果经常修改静态文件,这是相当麻烦的. 其实是需要把jetty的webdefault.xml文件中的useFileMappedBuffer节点改为false即可 但是最近在项目中使用maven,jetty也作为maven插件使用,根本没有jetty的配置文件.其实jett

事务(ACID)、并发一致性问题(丢失修改、读脏数据、不可重复读、幻影读)、封锁(封锁粒度、类型、协议、MySQL 隐式与显示锁定)

1. 事务 1.1 概念 事务指的是满足 ACID 特性的一组操作,可以通过 Commit 提交一个事务,也可以使用 Rollback 进行回滚。 1.2 ACID 1.2.1  原子性(Atomicity) 事务被视为不可分割的最小单元,事务的所有操作要么全部提交成功,要么全部失败回滚。 回滚可以用日志来实现,日志记录着事务所执行的修改操作,在回滚时反向执行这些修改操作即可。 1.2.

刚复制的vm workstation 虚机机,在别人机器上启动时报H:\centos-6.0-710\CentOS 64 位.vmdk”或它所依赖的某个快照磁盘 ” 原因: 未能锁定文件”

打不开磁盘“H:\centos-6.0-710\CentOS 64 位.vmdk”或它所依赖的某个快照磁盘 ” 原因: 未能锁定文件”      这主要是非正常关虚拟机造成的,具体原因如下:虚拟机为了防止有多虚拟机共用一个虚拟磁盘(就是后 缀为.vmdk那个文件)造成数据的丢失和性能的削弱,每次启动虚拟机时会给每个虚拟磁盘加一个磁盘锁(也就是后缀为.lck的那个文件夹)对虚拟磁盘文件 进行锁定保

常见概念 -- 增益锁定与功率锁定

增益锁定         增益锁定(Gain Locking),指单波信号增益保持恒定,单波的增益与单波输入功率大小、单波数量无关。 应用场景         正常运行的网络,光放板的工作模式一般设置为增益锁定。         增益锁定模式下,单个或多个波长发生增波或掉波、光信号波动都不会影响其他通道的光功率,因此,在扩容场景下,可以避免上下波变化引起其他波长的功率突变而产生误码

Linux进程间的通信(一)exec函数族,getenv获取系统环境变量,system和popen的区别,文件和记录锁定通信

目录 几个系统关键api exec函数族 getenv()  system() 文件和记录锁定通信 在Linux/Unix系统中,进程间通信方式(Inter-Process Comunication)通常有如下若干中方式: 1、文件和记录锁定 2、管道 3、信号 4、system-V 5、POSIX信号量 6、套接字 socket 这些通信机制统称IPC,它们各有

Word文档被锁定无法编辑怎么办?一键快速移除Word编辑限制

有没有遇到这种情况?打开Word文档后,准备对Word软件进行文档的编辑时,发现文档有部分内容无法进行编辑了,不知道怎么回事,其实这是因为无法编辑区域被锁定了,所以无法进行编辑,那么应该怎么解除呢? 方法一:取消限制编辑 1、如果Word文档被锁定,会出现下图所示的情况,上方功能栏中的功能均显示为灰色,即编辑功能被锁定,无法使用。 2、Word被锁定的原因是设置了保护。如果需

iphone被锁定怎么解锁?iPhone密码锁解锁办法分享

在忙碌的生活中,有时我们可能会遇到一些“小插曲”,比如苹果手机被锁定,iPhone被锁定是一个常见的问题,可能是由于忘记密码、多次输入错误密码或设备被远程锁定等原因造成的。 本文将介绍解锁被锁定的iPhone的方法以及注意事项,帮助你轻松解决问题,让你在忘记密码锁的情况下,也能迅速恢复手机的使用。 方法一:使用iTunes解锁 将被锁定的iPhone连接到电脑,并启动iTunes。如