创建方法
NPC的架构
未触发前
任务完成前
第一关
第二关
任务完成后
脚本
需要在脚本属性指定按键提示、对话框、还有对话框的文本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class NPCManager : MonoBehaviour
{
public GameObject dialogImage;
public GameObject tipImage;
public Text text;
public float showTime = 4;
private float showTimer;
// Start is called before the first frame update
void Start()
{
tipImage.SetActive(true);
dialogImage.SetActive(false);
showTimer = -1;
}
// Update is called once per frame
void Update()
{
showTimer -= Time.deltaTime;
if(showTimer<0)
{
tipImage.SetActive(true);
dialogImage.SetActive(false);
}
}
public void ShowDialog()
{
//调用PlayerControl脚本的标记,判断任务是否完成,完成则修改文本
if(PlayerControl.showflag==1)
{
text.text= "青蛙先生:\n任务已完成,你现在可以进入城堡了!";
}
showTimer = showTime;
dialogImage.SetActive(true);
tipImage.SetActive(false);
}
}
此外,还有两种显示方案
一、把NPC设置为触发器,当玩家走入预定区域,显示对话框
private void OnTriggerEnter2D(Collider2D other)
{
ShowDialog();
}
二、设置为不触发,但是玩家与NPC碰撞,则显示对话框
private void OnCollisionEnter2D(Collision2D collision)
{
ShowDialog();
}
附完整教程:
原博地址
https://blog.csdn.net/weixin_43673589