『功能项目』靠近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)https://www.bilibili.com/video/BV1rZY4e9Ebs/?spm_id_from=333.999.0.0&vd_source=547091a95b03acfa8e8a9e46ef499cd6