unity 3D RPG高级教程(十四)

目录

声明

1. QuestGiver 控制任务对话显示

2.GiveRewards 拿到任务奖励

3.SaveQuestManager 保存任务数据


声明

本教程学习均来自U3D中文课堂麦扣老师

1. QuestGiver 控制任务对话显示

现在来实现NPC能根据我任务的情况给我不同的对话,比如说第一次对话的时候是开始任务,任务过程进行当中要返回进行当中的对应的对话,结束的时候要有结束任务的,完成这个任务拿到奖励之后我再去找他对话的时候又是另外一个对话,所以可以看到我们需要在这里面不断地切换我们的Dialog Data,那么我们会创建一个代码来实时的替换我当前NPC要说的那个对话的数据,那我们先创建一下这个代码:

我们去到我们的Quest当中,我们在我们的Logic里面创建代码QuestGiver:

挂载到NPC身上

 可以看到现在我们的NPC身上有一个DialogController,所以我们的Giver也要拿到Controller的使用权,然后将QuestGiver里保存的数据实时更新到我的currentData,那么我每次跟它对话的时候就会显示不同的内容了,所以我的任务也需要做一些更改,比如说我的NewTalk,我要给它改个名字,Hero Start,也就是Hero第一次开始的时候对话的内容,然后我也会创建更多的Data去检测它任务进行中的对话和结束的对话,

先来写一下QuestGiver:

[RequireComponent(typeof(DialogueController))]
public class QuestGiver : MonoBehaviour
{
    DialogueController controller;
    QuestData_SO currentQuest;

    public DialogueData_SO startDialogue;
    public DialogueData_SO progressDialogue;
    public DialogueData_SO completeDialogue;
    public DialogueData_SO finishDialogue;

    #region 获得任务进度
    public bool IsStarted
    {
        get
        {
            if (QuestManager.Instance.HaveQuest(currentQuest))
            {
                return QuestManager.Instance.GetTask(currentQuest).isStarted;
            }
            else return false;
        }
    }

    public bool IsComplete
    {
        get
        {
            if (QuestManager.Instance.HaveQuest(currentQuest))
            {
                return QuestManager.Instance.GetTask(currentQuest).isComplete;
            }
            else return false;
        }
    }

    public bool IsFinished
    {
        get
        {
            if (QuestManager.Instance.HaveQuest(currentQuest))
            {
                return QuestManager.Instance.GetTask(currentQuest).isFinished;
            }
            else return false;
        }
    }
    #endregion

    private void Awake()
    {
        controller = GetComponent<DialogueController>();
    }

    private void Start()
    {
        controller.currentData = startDialogue;//开始对话数据
    }
}<
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Unity3D RPG游戏框架是一种用于开发角色扮演游戏的一套工具和框架。它提供了一系列功能和组件,使开发者能够快速建立一个具有角色控制、任务系统、战斗系统等功能的游戏。 首先,Unity3D RPG游戏框架提供了强大的角色控制功能。开发者可以轻松地创建角色,并对其进行动画、物理和碰撞等控制。框架还提供了角色属性和状态管理的机制,使开发者能够定义和管理角色的生命值、能力值和状态等。 其次,Unity3D RPG游戏框架支持任务系统的开发。开发者可以创建各种类型的任务,如主线任务、支线任务和日常任务等,并为每个任务定义任务目标、奖励和任务进度等。框架还提供了任务的触发和完成的事件回调,使开发者能够灵活地控制任务的逻辑和流程。 此外,Unity3D RPG游戏框架还包括战斗系统的实现。开发者可以创建各种类型的敌人和怪物,并为其定义属性、技能和行为等。框架提供了各种战斗机制,如近战攻击、远程攻击和技能释放等。同时,框架还支持战斗AI的设计和开发,使敌人和怪物能够智能地进行战斗。 此外,Unity3D RPG游戏框架还提供了一些额外的功能和工具,如用户界面、物品系统和声音管理等。开发者可以使用这些功能来增强游戏的可玩性和趣味性。 总之,Unity3D RPG游戏框架是一个功能强大的工具和框架,它能够帮助开发者快速建立一个完整的RPG游戏。无论是开发者的经验水平还是游戏的规模,都可以借助这个框架来实现自己的创意和想法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值