找回密码
 立即注册
查看: 361|回复: 0

Unity教程2D入门:19 对话框Dialog

[复制链接]
发表于 2022-1-11 08:46 | 显示全部楼层 |阅读模式
https://www.bilibili.com/video/BV1b4411y7yq
在Canvas添加Panel,改名为EnterDialog(对话框),



设置位置、大小和颜色透明度可获得如下效果



在EnterDialog添加text文本,设置如下



接着设置遇到门就触发文本显示
给门添加碰撞体设置为trigger,并设置位置大小


给house添加一个EnterDialog脚本
  1. using UnityEngine;
  2. public class EnterDialog : MonoBehaviour
  3. {
  4.     //public GameObject enterDialog;//麦扣老师教的是手动拖入的方法
  5.     private GameObject enterDialog;//这里我用寻找GameObject的方法
  6.     void Start()
  7.     {
  8.         enterDialog = GameObject.Find("EnterDialog");//自动获取EnterDialog
  9.                       //注意GameObject.Find无法找到开局不显示的物体
  10.         enterDialog.SetActive(false);//所以开局用代码设置对话框为false
  11.     }
  12.     private void OnTriggerEnter2D(Collider2D collision)
  13.     {
  14.         if (collision.tag == "Player")
  15.         {
  16.             enterDialog.SetActive(true);
  17.         }
  18.     }
  19.     private void OnTriggerExit2D(Collider2D collision)
  20.     {
  21.         if (collision.tag == "Player")
  22.         {
  23.             enterDialog.SetActive(false);
  24.         }
  25.     }
  26. }
复制代码
记得将player的tag设置为player(这是个unity预置的tag)
上面语句是利用onTriggerEnter2D检测player触碰和离开来开启和关闭EnterDialog的显示
========注意GameObject.Find无法找到开局没激活的物体========
下面添加渐显动画,
在Animation文件夹,新建Dialog文件夹,新建名为EnterDialog的Animation


将EnterDialog这个animation拖进Hierarchy里的EnterDialog
(↑↑↑↑↑  这是最快捷的方法,会自动生成animator)


选中下面EnterDialog,开启2录制,设置框和text的透明度,0帧为全透明,两秒后在显示,调完关闭录制


完成

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2025-5-14 19:13 , Processed in 0.208165 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表