NGUI初探之UIRoot

UnityNGUI UIRoot 的屏幕适配问题 UIRoot 屏幕适配文章说明屏幕适配UIRoot 文章说明 屏幕适配 UIRoot UIRoot 中有一个 “Scaling Style” 属性,含有三个基本的选项,如下: Flexible Constrained ConstrainedOnMobiles 阅读详情

        关于最近在捣鼓的AR技术,利用到NGUI的插件,可以实现屏幕按钮的一些触发事件,下面是我所研究的代码以及相关截图,如若有误希望恳请斧正。


        简单的音量调节、语言选择、声音关闭和拍照截屏以及离开按钮。先创建一个UIRoot,在然后新建一些所需的Panel,接着在底下new出一个个的按钮,如下图:


跟着自己写一个UIManager的脚本挂载到UIRoot下,具体代码块如下:

public GameObject ExitButton;

public GameObject PhotoButton;
bool saved = false;

public GameObject TransformButton;
... ...

Start()方法:

void Start () {

        UIEventListener.Get(ExitButton).onClick = ExitBtnClick;
        UIEventListener.Get(PhotoButton).onClick = PhotoBtnClick;
        UIEventListener.Get(TransformButton).onClick = TransformBtnClick;
        ... ...
    }
各个按钮的点击事件,可以自行创造:

void ExitBtnClick(GameObject button)
    {
        Application.Quit();

    }

    void PhotoBtnClick(GameObject button)
    {
        ScreenshotManager.ScreenshotFinishedSaving += ScreenshotSaved;
        StartCoroutine(ScreenshotManager.Save("MyScreenshot", "Czd", true));
        
    }

    void ScreenshotSaved()
    {
        Debug.Log("screenshot finished saving");
        saved = true;
    }

    void TransformBtnClick(GameObject button)
    {
        OnGUI();
    }


NGUI UIRoot 源码解读 UIRootNGUI UI 适配的核心,负责所有 UI 的缩放和分辨率适配。通过 activeHeight 和 pixelSizeAdjustment,保证 UI 在不同分辨率下显示一致。设计时只需关心 UIRoot 的参数,UI 元素自动适配。下面我将更深入地解读 NGUI UIRoot 的源码实现细节,包括其生命周期、关键方法、与 UICamera/UIPanel 的协作、以及实际开发中常见的适配策略和注意事项。UIRootNGUI UI 适配的基石。 阅读详情

相关推荐

NGUI基础-三大基础组件之Root组件

Constrained on Mobiles(移动设备上的约束):选择Constrained on Mobiles适配方式后,UI元素将会在移动设备上被限制在特定的区域内,而在其他设备上则会根据屏幕大小进行灵活缩放。同时,Root节点也是UI层级管理的重要依据,不同层级的UI元素可以作为Root的子节点,形成层次结构,方便控制UI元素的显示与隐藏,以及接收用户输入事件。这样在高分辨率上显示的UI就会被放大保持原有大小,但有可能会模糊,好处是各设备看到的UI和屏幕比例是一样的。建议勾选,缩放起来更准确。

m0_71469414的博客 1611

NGUI UIRoot组件:UI的根基

Unity游戏开发中,使用NGUI(Next-Gen UI)构建用户界面是一种常见的做法。UIRootNGUI中一个至关重要的组件,它作为所有UI元素的容器,负责管理UI的全局属性和行为。本文将深入探讨UIRoot的作用、特性以及如何在Unity项目中使用它。

Unity打怪升级 748

unity NGUI-tablelist控件使用

unity NGUI-tablelist控件使用,可以明白怎么制作tablelist的过程,导入unity软件可以直接运行

10005003 NGUI 插件学习笔记001-UI Root

如上操作,可以打开NGUI已经设置好的Prefab,视图如下: 我们自己新增Prefab时,也可以增加到这个工具里面。 将Background控件,添加到场景中: 如上,会发现有个UI Root。 UI Root,就是我们当前场景上UI的根节点,ui界面放在这个根节点下面。 点击Camera,可以看到ui摄像机的视野。 切换到Game窗口,可以设置摄像机视野,或者说是窗口视图比例: 比如,设置为5:4,如下: ...

星月相随的专栏 381

NGUI之UIGrid & UITable

` NGUI 提供了 Grid 和 Table

THE NO.5的博客 4294

Unity3D】【NGUI】UITable

概述 UITable用来方便的在一个可变尺寸的单元格子排列widget。如果你熟悉HTML的table,就会发现他们差不多。编辑时和运行时都可以用。如果你想要固定格子大小,那就用Grid。 选择一个panel,之后在scene view中右键点击任何地方,在Create menu里面选择Table,就可以创建一个UIGrid。当然你也可以简单的把UITable组件挂

Daniel 的专栏 1万+

NGUI UITable组件:打造动态列表与网格的高效工具

UITable专门用于创建和管理动态列表或网格,它能够高效地处理大量数据项的显示和更新。

Unity打怪升级 1613

NGUIUIRoot

xia'mia 概述 UIRoot总是放在NGUI UI层级的最上层。 它用来使UI的缩放变得更容易。widget通常使用的是以像素为单位的坐标,但是一个800*400(dimensions的值)的widget会占用800*400个单位(Unity中的单位),这相当大。UIRoot通过屏幕高度的反比来进行缩放,因此widgets都会很小,并且操作起来更容易。    

monzart的专栏 4021

NGUI所见即所得之UIRoot

 NGUI所见即所得之UIRoot                  UIRootNGUI最根本和最重要的脚本,在实际UI开发过程中都是以UIRoot为根的GameObject树,那他的作用到底是什么,先看下UIRoot的Inspection选项: 看到这个,大致可以猜到是跟UI界面缩放有关的,而且是基于高度放缩的。   Scaling Style参数          到底每...

qiudesuo的专栏 612

NGUI核心代码之UIRoot

NGUI核心代码之UIRootNGUI核心代码之UIRootUIRoot简介UIRoot的缩放方式 NGUI核心代码之UIRoot 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 UIRoot简介 UIRootNGUI系统的根节点,是每一个NGUI元素的顶级父节点。 U...

double kill = 2.0; 466

深挖 NGUI 基础 之UIRoot (一)

深挖 NGUI 基础 之UIRoot (一) 当你开始使用NGUI的时候,简单的从项目视图 中一个”Control”预设体 拖拽到场景视图中,你将会发现 Hierarchy层次面板中会出现以下层次结构: 其中 UI Root作为根节点,是每个NGUI元素的顶级父节点 在Unity中,每个元素都具有最基本的Tra...

lliaoguipeng13的专栏 372

NGUI -- UIRoot

注意:本文翻译时NGUI版本已经更新到3.0.7 原文地址:http://www.tasharen.com/forum/index.php?PHPSESSID=95e796b8f47f1380d66f5486e28f9acc&topic=6710

xiaodiao062的专栏 626

关于NGUI中的UITable

好久没写blog了,目前已经在一家手游公司实习了,哈哈哈 之前看过一篇统计,70%以上的手游项目都使用NGUI,我们组项目用的就是。因为之前没怎么接触过,所以感觉还有很多坑要走。 最近就遇到一个新手坑。如果项目使用NGUI,那么UITable肯定用得不少。 (图片摘自网络)如果是简单的预制,整个预制里只用到一两个UITable,那么UITable会很给力地为预制的内容排序。但如果是复杂的预制,

Franky_Y的博客 4062

NGUI之UITable

NGUI UITable使用方法 使用方法 你可以简单地在一个空物体上添加 UITable 脚本来实现这个功能。然后它会对该物体下的所有子物体进行排序,在代码里面实际维护了一个孩子Transform的列表:List<Tranform> children。UITable的部分重要参数如下: columns:定义每一行有多少列。当 columns <= 0时,所有的子物体都在一行上...

Terie的博客 2164

Unity3D下UI插件NGUI的屏幕自适应

NGUI研究之3.6.x~3.7.x版本自适应 NGUIunity3D开发中常用的UI制作插件,它提供了丰富的UI组件,为开发者提供了极大的方便。作为一个手游开发者,面对纷繁复杂的机型,UI的自适应是一个很大的问题,还好NGUI为广大开发者提供了非常方便的自适应解决方案。 在NGUI的整个UI框架中,UIRoot是必不可少的,UI视口的大小是由 NGUIUIRoot脚本决定的。NG

Terminator的专栏 4633

Unity3D如何创建多个UIRoot?

当我们在场景中使用NGUI已经创建了3DUI和2DUI之后,如何还想再创建另外的UI,则UI选项会变化灰色而无法再次进行创建,因为默认的情况下场景中,不允许有多个UIRoot出现。而且大部分情况下也不需要多个UIRoot。如果确实需要可以通过以下方法进行解决: 1. 如图出现这种情况后: 2. 分别选择Hierarchy视图的UIRoot对象,在Inspector视图下面,右键点击Re

yangyongUestc的博客 2338
上一篇: Vuforia应用之屏幕截图功能
下一篇: 哎哟,不错哦之玩乐动物园
Don
Don
博客等级 码龄15年 15粉丝 32原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值