先上效果图:

我是用触发器做的。在信息滚动区的上方放了一个触发器,如上图所示,然后利用触发函数,在信息框触发事件时消除,并实例新的对话框。

挂在聊天框父物体的脚本:

using UnityEngine;
using System.Collections;public class BGController : MonoBehaviour {public GameObject chatPre;     // 聊天预设private UIGrid grid;private GameObject[] talks = new GameObject[4];void Awake(){grid = transform.GetComponent<UIGrid>();CreateCells();}private void CreateCells(){grid.maxPerLine = 1;grid.cellWidth = Global.CWidth;grid.cellHeight = Global.CHeight;for (int i = 0; i < talks.Length; i++) {GameObject go = Instantiate(chatPre)as GameObject;go.transform.SetParent(this.transform);               // 设置父物体go.transform.localScale = Vector3.one;grid.pivot = UIWidget.Pivot.Center;grid.AddChild(go.transform,true);CellModel m = CellModel.Create("系统:",i.ToString());Cell c = go.GetComponent<Cell>();c.Model = m;talks[i] = go;}}// 创建新的对话,需要相应的对话接口public void AddNewCell(){GameObject go = Instantiate(chatPre)as GameObject;go.transform.SetParent(transform);go.transform.localPosition = new Vector3(0,-45,0);go.transform.localScale = Vector3.one;CellModel m = CellModel.Create(System.DateTime.Now.Day.ToString(),System.DateTime.Now.ToString());Cell c = go.GetComponent<Cell>();c.Model = m;}
}

挂在cell预设体上的脚本:

using UnityEngine;
using System.Collections;public class Cell : MonoBehaviour {private BGController bg;private Rigidbody rig;private CellModel model;public UILabel title;public UILabel chat;public CellModel Model {get {return model;}set {model = value;UpdateChatView();}}void Awake(){bg = GameObject.FindGameObjectWithTag("Container").GetComponent<BGController>();rig = GetComponent<Rigidbody>();rig.useGravity = false;//        title.text = "";
//        chat.text = "";
    }void Update () {transform.localPosition += transform.up * Global.moveSpeed * Time.deltaTime;
//        UpdateChatView();
    }void OnTriggerEnter(Collider other){if(other.transform.name.Equals("Trigger")){
//            Debug.Log(other.transform.name);Destroy(this.gameObject);bg.AddNewCell();}}// 更新聊天框内容(可加接口)private void UpdateChatView(){title.text = model.title;chat.text = model.chat;}
}

有两个全局脚本(CellModel和Global)

CellModel存放了cell的模型

using UnityEngine;
using System.Collections;public class CellModel {public string title;public string chat;private CellModel(){}private CellModel(string title,string chat){this.title = title;this.chat = chat;}public static CellModel Create(string title,string chat){return new CellModel(title,chat);}
}

Global存放全局静态变量

using UnityEngine;
using System.Collections;public class Global {public static float moveSpeed = 20f;public static float CWidth = 270;public static float CHeight = 30;}

转载于:https://www.cnblogs.com/wangsaiws/p/5048708.html

Unity3D ----- 制作信息滚动提示(NGUI)相关推荐

  1. Unity3D制作LED滚动字幕(跑马灯)效果

    Unity3D制作LED滚动字幕(跑马灯)效果 搭建场景 建立世界坐标的Canvas 新建LED模型 Text节点 Mask节点 查看效果 美化一下 编写代码 DOTween插件 设置属性 编写文字滚 ...

  2. Unity3D制作3dRPG游戏——登录系统

    Unity3D制作3dRPG游戏--登录系统 目录 Unity3D制作3dRPG游戏--登录系统 设定辅助摄像机(登录界面背景) UI界面设计 编写代码GameManage思路过程 代码GameMan ...

  3. Axure怎么制作文字滚动的动态效果

    对于那些刚接触Axure RP软件的用户来说,如果想要独自制作一个滚动字幕效果,无疑是有些困难的.鉴于此,本文整理了Axure制作文字滚动的动态效果的方法讲解,有需要的朋友可以参考. Axure怎么制 ...

  4. unity3d制作RPG游戏系列(4)——UI界面

    个人博客文章链接:http://www.huqj.top/article?id=161 游戏中除了3d场景以外,UI界面也是很重要的一部分,例如主角的头像.血条.背包.按钮等. 下面是myrpg中的简 ...

  5. Unity3D制作3dRPG游戏——主角移动控制实现

    Unity3D制作3dRPG游戏--主角移动控制实现 目录 Unity3D制作3dRPG游戏--主角移动控制实现 实现原理 具体操作 问题解决 总体代码及效果展示 完整代码(镜头控制由之前的文章修改得 ...

  6. Unity3D制作3dRPG游戏——镜头控制

    Unity3D制作3dRPG游戏--镜头控制 镜头控制 Unity3D制作3dRPG游戏--镜头控制 直接控制镜头围绕玩家角色旋转 控制镜头跟随鼠标上下左右滑动围绕玩家角色旋转 控制镜头跟随鼠标中键滚 ...

  7. Unity3d制作一个简单粗暴的五子棋项目工程源码

    Unity3d制作一个简单粗暴的五子棋 最终效果 项目源码 绘制棋盘 绘制构思 绘制代码 效果图 放置棋子 功能和效果 功能 效果 制作棋子 定义类和类型 棋子类型 棋盘格类 实现功能 初始棋盘格数据 ...

  8. 利用Unity3D制作简易2D计算器

    利用Unity3D制作简易2D计算器 标签(空格分隔): uiniy3D 1. 操作流程 在unity3DD中创建一个新项目 注意选择是2D的(因为默认3D) 在Assets框右键新建C#脚本 在新建 ...

  9. jQuery实现的向下推送图文信息滚动效果

    WEB页面需要展示网站最新信息,如微博动态.余票信息.路况监控等项目中常见的实时数据滚动效果,我们可以用jQuery来实现前端信息滚动效果.本文我们将结合实例为大家讲解如何使用jQuery来实现图文信 ...

  10. c4d如何把文字贴在物体表面_如何使用C4D制作动态滚动文字条

    本教学为翻译教学,转载请注明来自aboutcg.net,以及注明翻译者 原文教学出自Corey Dawson Hall的个人网站,原始链接如下: 作者: Corey Dawson Hall 翻译:SO ...

最新文章

  1. 通过几个例子看sed的模式空间与保持空间
  2. hp服务器安装exsi5.5
  3. 学习算法导论-红黑树之摘录
  4. php接收get数组数据,来自HTTP的PHP注入GET数据用作PHP数组键值
  5. matlab中求积函数,MATLAB软件及高斯勒让德求积公式MATLAB软件及高斯勒让德求积公式.doc...
  6. cc java区别_cC和C++和java的问题有啥区别?
  7. 腾讯优图升级为计算机视觉研发中心,与《科学》宣布战略合作
  8. MemcacheQ 安装与使用
  9. IntelliJ IDEA常用的快捷键积累总结
  10. docker命令每次需要sudo操作解决方案
  11. C++笔记---函数声明(prototype)
  12. jquery的一些常用方法
  13. MyCat重要概念以及基础配置详解
  14. CMSIS应用于研究指南图文教程
  15. 缠中说禅电子书_缠中说禅108课PDF电子书
  16. 叉乘点乘混合运算公式_数学公式总结人教版初一上册
  17. Habor镜像仓库的搭建
  18. 使用cmd命令快速修改电脑密码
  19. 如何保护您的数据免遭未经授权的访问
  20. python数据模型和算法_万字案例 | 用Python建立客户流失预测模型(含源数据+代码)...

热门文章

  1. mysql使用join和不使用join_在SQL或MySQL中不使用JOIN关键字的联接有问题吗?
  2. 你知道如何计算CNN感受野吗?这里有一份详细指南
  3. CVPR 2018 挑战赛
  4. Ubuntu 主题美化
  5. OpenCV 基本模块
  6. error C1128: 节数超过对象文件格式限制: 请使用 /bigobj 进行编译
  7. 贝尔英才学院计算机,特稿 | 从高三的二模倒数第一到考取南京邮电大学贝尔英才学院,他仅用了半年!...
  8. 你必须具有权限才能读取此对象_为啥手机APP要获取权限?这些权限不能随便同意...
  9. 未来智能合约平台的展望
  10. Docker教程小白实操入门(9)--基于export导出容器与基于import导入一个镜像