Ruby‘s Adventrue游戏制作笔记(十五)UnityNPC对话

Ruby's Adventrue游戏制作笔记(十五)UnityNPC对话

  • 前言
  • 一、拖入NPC
  • 二、添加碰撞器
  • 三、使用玩家发射射线的方式检测是否有NPC
  • 四、 给NPC添加对话框
  • 五、给NPC添加脚本
  • 六、设置提示框
  • 七、NPC对话自定义
  • 系列链接


前言

本文章是我学习Unity官方项目项目所做笔记,作为学习Unity的游戏笔记,在最后一章会发出源码,如果等不及可以直接看源码,里面也有很多注释相关,话不多说,让Ruby动起来!
游戏引擎:Unity2020.3

一、拖入NPC

Ruby‘s Adventrue游戏制作笔记(十五)UnityNPC对话_第1张图片
调整动画速度 (ctrl + 6)

二、添加碰撞器

调整大小

Ruby‘s Adventrue游戏制作笔记(十五)UnityNPC对话_第2张图片

三、使用玩家发射射线的方式检测是否有NPC

使用玩家发射射线的方式检测是否有NPC,
Ruby‘s Adventrue游戏制作笔记(十五)UnityNPC对话_第3张图片
设置NPC层级,使射线只会跟NPC层级交互
在这里插入图片描述

四、 给NPC添加对话框

添加UI-Canvas
Ruby‘s Adventrue游戏制作笔记(十五)UnityNPC对话_第4张图片
修改 画布为world Space,并修改对话框大小

在这里插入图片描述
Ruby‘s Adventrue游戏制作笔记(十五)UnityNPC对话_第5张图片
稍微调整位置
Ruby‘s Adventrue游戏制作笔记(十五)UnityNPC对话_第6张图片
添加背景图片
在这里插入图片描述
选择素材
Ruby‘s Adventrue游戏制作笔记(十五)UnityNPC对话_第7张图片

选择锚点,按住Alt键,选择右下角的这个,进行画布填充
Ruby‘s Adventrue游戏制作笔记(十五)UnityNPC对话_第8张图片
Ruby‘s Adventrue游戏制作笔记(十五)UnityNPC对话_第9张图片
创建文本
在这里插入图片描述
Ruby‘s Adventrue游戏制作笔记(十五)UnityNPC对话_第10张图片
添加outline使文字更加清晰
Ruby‘s Adventrue游戏制作笔记(十五)UnityNPC对话_第11张图片

五、给NPC添加脚本

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

// NPC交互相关脚本
public class NPCmanager : MonoBehaviour
{
    public GameObject dialogImage; // 对话

    // 对话框显示时间
    public float showTime = 4;
    public float showTimer;

    private void Start()
    {
        // 初始默认隐藏对话框
        dialogImage.SetActive(false);

        showTimer = -1;
    }


    private void Update()
    {
        
        showTimer -= Time.deltaTime;

        if(showTimer < 0)
        {
            dialogImage.SetActive(false);
        }

    
    }

    // 显示对话框
    public void ShowDialog()
    {
        showTimer = showTime;
        dialogImage.SetActive(true);
    }

}

将DialogFrame拖入脚本
Ruby‘s Adventrue游戏制作笔记(十五)UnityNPC对话_第12张图片

六、设置提示框

Ruby‘s Adventrue游戏制作笔记(十五)UnityNPC对话_第13张图片
在这里插入图片描述
Ruby‘s Adventrue游戏制作笔记(十五)UnityNPC对话_第14张图片
设置对话时让提示框消失

Ruby‘s Adventrue游戏制作笔记(十五)UnityNPC对话_第15张图片
设置提示框在对话框结束后出现
Ruby‘s Adventrue游戏制作笔记(十五)UnityNPC对话_第16张图片
将对话框拖入进去
在这里插入图片描述

七、NPC对话自定义

在NPC脚本中添加
在这里插入图片描述
设置文本
Ruby‘s Adventrue游戏制作笔记(十五)UnityNPC对话_第17张图片
将NPC下的TEXT拖入
Ruby‘s Adventrue游戏制作笔记(十五)UnityNPC对话_第18张图片
获得同一个tag下的物品数量
设置robot的tag为Robot
在这里插入图片描述
Ruby‘s Adventrue游戏制作笔记(十五)UnityNPC对话_第19张图片
Ruby‘s Adventrue游戏制作笔记(十五)UnityNPC对话_第20张图片
Ruby‘s Adventrue游戏制作笔记(十五)UnityNPC对话_第21张图片

系列链接

Ruby‘s Adventrue游戏制作笔记(一)Unity创建项目

Ruby‘s Adventrue游戏制作笔记(二)Unity控制ruby移动

Ruby‘s Adventrue游戏制作笔记(三)Unity使用tilemap绘制场景

Ruby‘s Adventrue游戏制作笔记(四)Unity绘制其他元素

Ruby‘s Adventrue游戏制作笔记(五)Unity解决碰撞抖动和旋转问题

Ruby‘s Adventrue游戏制作笔记(六)Unity相机跟随玩家移动

Ruby‘s Adventrue游戏制作笔记(七)Unity采集生命道具

Ruby‘s Adventrue游戏制作笔记(八)Unity伤害陷阱

Ruby‘s Adventrue游戏制作笔记(九)Unity添加敌人

Ruby‘s Adventrue游戏制作笔记(十)Unity添加动画

Ruby‘s Adventrue游戏制作笔记(十一)Unity角色攻击——发射子弹

Ruby‘s Adventrue游戏制作笔记(十二)Unity给角色添加简单的特效

Ruby‘s Adventrue游戏制作笔记(十三)Unity血条UI的显示

Ruby‘s Adventrue游戏制作笔记(十四)Unity播放游戏音效

Ruby‘s Adventrue游戏制作笔记(十五)UnityNPC对话

Ruby‘s Adventrue游戏制作笔记(十六)Unity子弹数量及其UI

Ruby‘s Adventrue游戏制作笔记(十七)Unity添加游戏胜利条件和失败条件和导出游戏

你可能感兴趣的:(笔记,Unity2D,Unity,unity,游戏程序)