『功能项目』禁止射线穿透行为【05】

2024-08-24 17:04

本文主要是介绍『功能项目』禁止射线穿透行为【05】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我们打开上一篇04移动后光标显示项目,

本章要做的事情是在PlayerRayNavgation脚本中添加两行代码,实现人物在场景中打开UI后鼠标点击UI面板不会实现主角的移动,也就是禁止点击禁止射线穿透功能。

在Unity编辑器中创建一个Image

在编辑器视角勾选2D,方便编辑UI,并按住鼠标中键拖动至如下位置

点击移动让Image修改至如下位置

修改Image尺寸

在Image下创建文字Text

命名为背包

再次创建一个Image做为一个背包面板

命名为Bag

修改背包面板尺寸

修改开启背包按钮的命名为BagBtn

增加Button组件

增加一个点击事件Click

拖拽

选择GameObject.SetActive(bool)

勾选显示

增加一个关闭按钮Image

同样手法

注意不勾选显示

将背包界面隐藏

运行程序后,点击背包可显示背包界面

点击灰色框可关闭背包界面

但是我们会发现当我们点击背包UI以及关闭UI操作的时候主角被射线点击移动了,

我们想做的是当我们点击背包、关闭背包以及点击UI界面的操作时不会让主角实现点击移动

那我们只需要修改代码禁止射线点击穿透UI就好了

增加PlayerRayClickNavigation.cs脚本ClickMouse()函数中的 事件系统的当前是否指向游戏物体的函数 如果指向就返回

这样保存代码后 就做到了禁止射线穿透UI的效果

运行项目 

点击背包 主角不会进行点击移动

关闭背包以及点击背包界面也不会使主角移动

本篇只实现了移动中的目标光标效果,接下来还需做以下内容:

1.新输入系统的人物转向功能

2.摄像机跟随主角移动

3.人物释放技能

4.怪物的生成

5.怪物UI信息(笼)

6.3D模型投射UI(UGUI)界面

7.怪物按指定位置移动

以及开放回合制、坐骑系统、宠物系统、背包系统、神炼系统、商城系统、Boss的目标跟随任务导航系统以及UI播放3D动画效果等等。

具体项目运行效果请关注water1024的b站视频项目演示《破碎纪元》

【Unity回合2.5D】破碎纪元_单机游戏热门视频 (bilibili.com)icon-default.png?t=N7T8https://www.bilibili.com/video/BV1rZY4e9Ebs/?spm_id_from=333.999.0.0

这篇关于『功能项目』禁止射线穿透行为【05】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

配置springboot项目动静分离打包分离lib方式

《配置springboot项目动静分离打包分离lib方式》本文介绍了如何将SpringBoot工程中的静态资源和配置文件分离出来,以减少jar包大小,方便修改配置文件,通过在jar包同级目录创建co... 目录前言1、分离配置文件原理2、pom文件配置3、使用package命令打包4、总结前言默认情况下,

SpringBoot整合DeepSeek实现AI对话功能

《SpringBoot整合DeepSeek实现AI对话功能》本文介绍了如何在SpringBoot项目中整合DeepSeekAPI和本地私有化部署DeepSeekR1模型,通过SpringAI框架简化了... 目录Spring AI版本依赖整合DeepSeek API key整合本地化部署的DeepSeek

python实现简易SSL的项目实践

《python实现简易SSL的项目实践》本文主要介绍了python实现简易SSL的项目实践,包括CA.py、server.py和client.py三个模块,文中通过示例代码介绍的非常详细,对大家的学习... 目录运行环境运行前准备程序实现与流程说明运行截图代码CA.pyclient.pyserver.py参

Python实现多路视频多窗口播放功能

《Python实现多路视频多窗口播放功能》这篇文章主要为大家详细介绍了Python实现多路视频多窗口播放功能的相关知识,文中的示例代码讲解详细,有需要的小伙伴可以跟随小编一起学习一下... 目录一、python实现多路视频播放功能二、代码实现三、打包代码实现总结一、python实现多路视频播放功能服务端开

css实现图片旋转功能

《css实现图片旋转功能》:本文主要介绍了四种CSS变换效果:图片旋转90度、水平翻转、垂直翻转,并附带了相应的代码示例,详细内容请阅读本文,希望能对你有所帮助... 一 css实现图片旋转90度.icon{ -moz-transform:rotate(-90deg); -webkit-transfo

IDEA运行spring项目时,控制台未出现的解决方案

《IDEA运行spring项目时,控制台未出现的解决方案》文章总结了在使用IDEA运行代码时,控制台未出现的问题和解决方案,问题可能是由于点击图标或重启IDEA后控制台仍未显示,解决方案提供了解决方法... 目录问题分析解决方案总结问题js使用IDEA,点击运行按钮,运行结束,但控制台未出现http://

解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题

《解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题》文章详细描述了在使用lombok的@Data注解标注实体类时遇到编译无误但运行时报错的问题,分析... 目录问题分析问题解决方案步骤一步骤二步骤三总结问题使用lombok注解@Data标注实体类,编译时

C语言小项目实战之通讯录功能

《C语言小项目实战之通讯录功能》:本文主要介绍如何设计和实现一个简单的通讯录管理系统,包括联系人信息的存储、增加、删除、查找、修改和排序等功能,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录功能介绍:添加联系人模块显示联系人模块删除联系人模块查找联系人模块修改联系人模块排序联系人模块源代码如下

Java中使用Java Mail实现邮件服务功能示例

《Java中使用JavaMail实现邮件服务功能示例》:本文主要介绍Java中使用JavaMail实现邮件服务功能的相关资料,文章还提供了一个发送邮件的示例代码,包括创建参数类、邮件类和执行结... 目录前言一、历史背景二编程、pom依赖三、API说明(一)Session (会话)(二)Message编程客

Java CompletableFuture如何实现超时功能

《JavaCompletableFuture如何实现超时功能》:本文主要介绍实现超时功能的基本思路以及CompletableFuture(之后简称CF)是如何通过代码实现超时功能的,需要的... 目录基本思路CompletableFuture 的实现1. 基本实现流程2. 静态条件分析3. 内存泄露 bug