【TGUI】从零开始搭建一个基于Unity的UI库 01

作为一个初学Unity3D一个来月的小菜鸟,要想自己搭建一个UI库也是挺疯狂的,但是老大不给用NGUI,然后那时候Unity4.6正式版还没发布(或者说我还不知道Unity4.6有自带UI),然后就无所畏惧的写下来了,目前虽然功能很简陋,实现的控件也非常少,但是作为练手的目的已经达成了,所以放上来给大家分享。

-------------------------------------------------- 分割线 --------------------------------------------------

1.UI引擎

做UI当然要有一套核心的机制,这个东西姑且叫他UI引擎吧,说起来也很简单,就是当鼠标点击的时候,UI引擎会触发点击事件;当鼠标滑动时,会触发滑动事件;点击结束时,会触发点击结束事件;鼠标移入移出也会触发相应的事件....等等。

实际上这个就是一个鼠标射线,在主摄像机上放置一个脚本,这个脚本的Update中每次都生成一个摄像机到鼠标在屏幕上的位置的射线,然后被这个射线打到的物体,将会触发鼠标移入事件,然后打到了而且鼠标单击了左键,将会触发鼠标点击事件...

具体核心代码如下:

Ray ray=Camera.main.ScreenPointToRay(Input.mousePosition);//从Camera发射射线到屏幕
if(Physics.Raycast(ray,out hit))//射线碰撞检测
{
        //这里写鼠标点击
if(Input.GetMouseButtonDown(0))
{

}
else if(...) //其他事件
{
}
else //鼠标移入事件
{

}
}

当然,实际上引擎不只这些功能,但是这个就是引擎最基础的功能了。UI引擎是我同学写的,已经封装成dll了,他在里面加入了类似WPF的控件机制——隧道事件,有兴趣的同学可以研究研究。

http://download.csdn.net/detail/baijiajie2012/8237051

时间: 2024-12-25 17:35:39

【TGUI】从零开始搭建一个基于Unity的UI库 01的相关文章

从零开始搭建一个网站

开始做项目,从零开始搭建一个网站的过程.这里以www.sampe.com为例,步骤如下. 1.在万网购买域名:www.sample.com 2.购买阿里云ECS云主机 3.在万网的域名管理中将域名解析到所购买的阿里云主机的ip地址上面. 4.在服务器(也就是云主机上面)设置域名的绑定(教程:http://www.cnblogs.com/yiluxiuxing/p/4347702.html) 至此完成网站搭建

vue-用Vue-cli从零开始搭建一个Vue项目

Vue是近两年来比较火的一个前端框架(渐进式框架吧). Vue两大核心思想:组件化和数据驱动.组件化就是将一个整体合理拆分为一个一个小块(组件),组件可重复使用:数据驱动是前端的未来发展方向,释放了对DOM的操作,让DOM随着数据的变化自然而然的变化(尤神原话),不必过多的关注DOM,只需要将数据组织好即可.本文用Vue-cli从零开始搭建一个Vue项目. 准备工作 1.下载安装Node.js 下载地址:https://nodejs.org/en/download/ ,选择合适自己的版本下载即可

如何搭建一个基于 Egg + Webpack + Vue 的服务端渲染工程项目呢?

如何搭建一个基于 Egg + Webpack + Vue 的服务端渲染工程项目呢? 项目你可以通过 easywebpack-cli 直接初始化即可完成或者clone egg-vue-webpack-boilerplate.下面说明一下从零如何搭建一个Egg + Webpack + Vue 的服务端渲染工程项目. 通过 egg-init 初始化 egg 项目 egg-init egg-vue-ssr // choose Simple egg app 安装 easywebpack-vue 和 egg

如何用vue-cli3脚手架搭建一个基于ts的基础脚手架

目录 准备工作 搭建项目 vue 中 ts 语法 项目代理及 webpack 性能优化 其他 忙里偷闲,整理了一下关于如何借助 vue-cli3 搭建 ts + 装饰器 的脚手架,并如何自定义 webpack 配置,优化. 准备工作 @vue/[email protected] vue 2.6 node v12.13.0 安装 node 安装 node 全局安装 nrm,npm 的镜像源管理工具. npm i nrm -g // 安装 nrm ls // 查看可用源,及当前源,带*的是当前使用的

如何从零开始搭建一个技术平台?

关键词:技术预研课题,平台设计,应用场景,故事,信息架构,业务流程,数据流程 本文档适用人员:全体研发 提纲: 应用场景其实就是我们的愿景 从应用场景推导出故事 从故事推导出信息架构和业务流程 一,如何从零开始? 如果让你把下面这套技术体系串联起来,从零开始构建一个技术平台,你如何做需求分析呢,在没有产品经理帮助你梳理的情况下? 下面这些系统涵盖了我们研发测试运维日常工作的方方面面: idCenter:它定义用户.用户组.权限.研发测试都有了唯一的身份和权限集合,贯穿所有系统. iDB:数据库自

Axios 是一个基于 promise 的 HTTP 库

NPM地址:https://www.npmjs.com/package/axios 安装 使用 npm: $ npm install axios 使用 bower: $ bower install axios 使用 cdn: <script src="https://unpkg.com/axios/dist/axios.min.js"></script> Example 执行 GET 请求 // 为给定 ID 的 user 创建请求axios.get('/use

webpack简单教程(1)--从零开始搭建一个webpack小例子

基于Windows操作系统下搭建webpack的运行环境,这里采用npm环境,node.js官网下载最新版本的, 这里忽略下载和安装,然后直接运行  Node 环境,如下图所示. 检查一下,node版本和npm工具的版本确保是最新的,这里并不是最新版本的, 如果版本都是最新的,那么就可以来直接搭建webpack一个小demo案例. 1.在F盘中创建一个文件夹webpack 2.在文件夹中创建index.html <!DOCTYPE html> <html lang="en&qu

[STM32F10x] 从零开始创建一个基于标准库的工程

硬件:STM32F103C8T6 平台:MDK-AMR V4.70 1.创建一个Keil uVision 的工程 要点:相同类型的源文件放在一起以便于管理       2.添加标准库源文件 3.添加几个必要的源文件 包括: core_cm3.c stm32f10x_it.c system_stm32f10x_it.c stm32f10x_conf.h 4.指定头文件路径 5.添加必要的预处理标志 本例为 USE_STDPERIPH_DRIVER, STM32F10X_MD 6.添加一个main函

搭建一个基于CentOS的可视化zookeeper管理工具zkUI实现对zk的可视化管理

一. zookeeper 可视化工具 JMX => CLRProfile ZKUI => java写的一个可视化的web网站 github中下载 https://github.com/DeemOpen/zkui git 拉取地址 :https://github.com/DeemOpen/zkui.git CoentOS 安装 git maven 1. git 安装: (在linux下安装卸载git非常方便)  命令 :yum remove git 删除git  命令 :yum -y insta