您的位置:首页 > 新闻 > 会展 > 『功能项目』靠近Npc显示可对话标识【60】

『功能项目』靠近Npc显示可对话标识【60】

2025/2/24 17:47:47 来源:https://blog.csdn.net/weixin_69360830/article/details/142317687  浏览:    关键词:『功能项目』靠近Npc显示可对话标识【60】

我们打开上一篇59窗口可拖拽脚本的项目,

本章要做的事情是在资源加载时加载Npc01并且实现主角靠近Npc01时,显示可对话标识,当按键盘G键时弹出对话内容

首先在资源场景中加载一个Npc模型

导入(除脚本)外的资源

在资源文件夹中创建一个脚本Npcs用于存放Npc模型

将导入的资源材质设置为URP可兼容

重命名为Npc01放入新建的Npcs文件夹中

创建一个角色控制器(拖拽四个动画让其不设置参数播放即可)

将Npc01AC拖拽至预制体Npc01中

在Npc01预制体内创建Canvas

将以下资源图片放进Art文件夹中

设置为精灵模式

拖拽至Image框选中后隐藏

创建Image制作对话面板

设置锚点在下方

将以下资源图片放进Art文件夹

设置为精灵模式

拖拽至框选

重命名为TalkUI

创建Image

设置尺寸

将以下资源放在Art文件夹并设置为精灵模式

拖拽至框选

将Image重命名为NpcImage

创建文本

设置文本

重命名为NpcText

将Talk重命名为Talk01再将TalkUI01拖拽至预制体文件夹后在场景中删除

创建脚本:AbleTalk.cs

using UnityEngine;
public class AbleTalk : MonoBehaviour{bool isG;public int countG = 0;GameObject canTalk;GameObject uiPrefabInstance;GameObject uiPrefab;void Start(){canTalk = transform.Find("Canvas/Image").gameObject;uiPrefab = Resources.Load<GameObject>("Prefabs/UITalk/TalkUI01");}void OnTriggerEnter(Collider other){if (other.CompareTag("Player")){transform.Find("Canvas/Image").gameObject.SetActive(true);isG = true;}}void OnTriggerExit(Collider other){if (other.CompareTag("Player")){transform.Find("Canvas/Image").gameObject.SetActive(false);isG = false;}}void Update(){if (canTalk.activeSelf && Input.GetKeyDown(KeyCode.G)){if (countG == 1)return;uiPrefabInstance = Instantiate(uiPrefab, new Vector3(0f, 285, 0f), Quaternion.identity);uiPrefabInstance.transform.SetParent(GameObject.Find("CurrentCanvas").transform, false);countG++;}if (isG == false)countG = 0;}
}

在游戏管理器框架中添加Npc01及其新增脚本AbleTalk.cs

保存项目后运行 - 靠近Npc01弹出可对话红色标识后按键盘G键即可弹出Npc对话框

本章做了Npc的可对话功能,当靠近Npc会弹出可对话红色标识,按键盘G键后即可弹出对话内容

接下来的文章内容:

1.按G键持续显示对话内容

2.窗口可拖拽脚本

3.点击名称寻找地点功能

4.隐藏怪物的生成

5.怪物I攻击范围内的主动攻击

6.掉落坐骑蛋的获取

7.异步传送转换场景

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

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

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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com