(@WhiteTaken)UGUI中遇到的一些细碎的知识点
最近接触Unity中UGUI的知识比较多,遇到的东西,就慢慢积累下来吧。用到就不用去网上找了。
1.Unity加载Sprite图片资源。在Unity中,我们可能会遇到,一张图片中,有多个UI,这时候导入到Unity中以后,需要对图片进行分割。如图。

切割完成的图片,我们是可以拖入到Image中的,但是有时候我们需要通过资源加载的方式进行图片的切换,这时候就能直接上代码了。
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using System.Collections.Generic;
/// <summary>
/// 加载sprite图片到指定的image
/// </summary>
public class LoadSprite : MonoBehaviour { public Image img;
[ContextMenu("LoadImage")]
void LoadImage()
{
Object[] objs = Resources.LoadAll("SomeTexture");
Dictionary<string, Sprite> dict = new Dictionary<string, Sprite>();
foreach(var obj in objs)
{
Sprite sprite = obj as Sprite;
if (sprite != null) dict.Add(sprite.name, sprite);
}
img.sprite = dict["a1_7"];
img.SetNativeSize();
}
}
运行结果可以看下图。

这样就能成功的加载图片,当然我们可以对这个image进行任何的操作。
2.Unity中的屏幕自适应。从前的我无知的认为,Unity的自适应用的非常的熟练,以为随便调一调画布的选项就能完美的适应了,但是最近的一个项目,做到自适应的时候总是不称手。直到后来主程大哥点拨了我一下,这才毛瑟顿开。
Unity中的屏幕自适应,确实得调画布的值,但是之后还需要进行一些操作,才能做到适配。下面分步说吧。
调画布。

画布的设置中,RenderMode:首先就是Overlay,即显示在所有的layer之前。这时我们有一个需求,需要让模型在画布和摄像机之间出现,这样我们就需要选Camera选项,然后把渲染的摄像机,挂在上边,然后把模型摆放到画布和该摄像机之间就Ok了。
还有一个选项就是,即世界空间中的坐标。做VR的应该经常用到。
我们大多数情况用overlay实现就行了。接下来需要设置Canvas Scaler,第一个选项就按图中设置,然后关键就来了,ScreenMatchMode,我们在这里选MatchHW。然后配合下边的那个float值(横版游戏以高度缩放,竖版游戏按宽度缩放)。
画布的设置就是这样。
除此之外,我们就需要对场景画布下的UI进行锚点的设置。然后选择如下红色部分所指的部分,按住Alt+鼠标左键,可以快捷适应。设置好这些东西,一些基本的屏幕自适应就做完了。

3.利用Unity的消息机制,实现各种UI的变化。先说说我之前是什么状态的,以前比较喜欢用代码控制UI,需要声明UI的变量,然后挂载上,最后为一些Button注册监听。
但是有时这是没有必要的。这些代码本来就是多余的,我们可以不用一行代码实现这些UI的所有功能。

其实就是对OnClick挂载Unity自带的一些API,比较简单,比较民工。哈哈-_-
在某些时候,这种方式,真的特别方便。
最近比较忙,跟不上更新,今后还是要坚持下去,经常总结自己学到的东西,记录自己的学习历程。希望对大家能有所帮助。
(@WhiteTaken)UGUI中遇到的一些细碎的知识点的更多相关文章
- UGUI 中Dropdown控件的使用经验
UGUI 中Dropdown控件的使用经验 在Untiy的UGUI 刚出来的时候,是没有“下拉列表”(Dropdown)控件的,这在无形中给我们的UI界面开发带来困难,不过在Untiy5.2.2之后这 ...
- UGUI中Event Trigger的基本用法
UGUI中Event Trigger的基本用法 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chin ...
- 【转】unity3d 在UGUI中制作自适应调整大小的滚动布局控件
转自 http://blog.csdn.net/rcfalcon/article/details/43459387 在游戏中,我们很多地方需要用到scroll content的概念:我们需要一个容器, ...
- unity3d 在UGUI中制作自适应调整大小的滚动布局控件
http://blog.csdn.net/rcfalcon/article/details/43459387 在游戏中,我们很多地方需要用到scroll content的概念:我们需要一个容器,能够指 ...
- Android开发中目前流行控件和知识点总结
Android开发中目前流行控件和知识点总结 1.SlidingMenu 滑动菜单 应用案例:Facebook . Path 2.0 .人人.网易新闻 下载地址: https://github.c ...
- (23)unity4.6学习Ugui中国文档-------非官方Demo1
大家好,我是广东太阳. 转载请注明出处:http://write.blog.csdn.net/postedit/38922399 更全的内容请看我的游戏蛮牛地址:http://www.unitym ...
- 【Unity3d游戏开发】浅谈UGUI中的Canvas以及三种画布渲染模式
一.Canvas简介 Canvas画布是承载所有UI元素的区域.Canvas实际上是一个游戏对象上绑定了Canvas组件.所有的UI元素都必须是Canvas的自对象.如果场景中没有画布,那么我们创建任 ...
- UGUI中显示粒子特效
今天在UGUI上显示粒子特效的时候遇到的一些问题,Mark一下.原理:修改特效中每一个ParticleSystem的Layer为UI,并且把ParticleSystemRenderer.sorting ...
- 【Unity游戏开发】你真的了解UGUI中的IPointerClickHandler吗?
一.引子 马三在最近的开发工作中遇到了一个比较有意思的bug:“TableViewCell上面的某些自定义UI组件不能响应点击事件,并且它的父容器TableView也不能响应点击事件,但是TableV ...
随机推荐
- 用mui框架开发手机app项目实践中的那些事儿
http://www.yilingsj.com/xwzj/2015-04-29/260.html 最近在玩mui框架,坑的我是:西湖的水,全都是眼泪!!! 公司的手机app要进行改版,我率先想到的是j ...
- 结合social relationship的推荐系统(持续更新)
最近看了一些结合社会关系的推荐系统,把论文罗列一下: (TidalTrust) Generating predictive movie recommendations from trust in so ...
- Mybatis增加对象属性不增加mapper.xml的情况
Mybatis增加对象属性不增加mapper.xml的情况: 只增加Model 对象的属性,在查询语句中返回相同名称的字段,但是在mapper中的 resultMap上面不进行新增字段的增加,查询结果 ...
- Canvas贝塞尔二级曲线
当前点到控制点,控制点到末尾点的两个连线,与这两个连线相切:<!DOCTYPE html> <html lang="en"> <head> &l ...
- OpenCV框架介绍
OpenCV框架介绍 概述 OpenCV是一个开放源代码的计算机视觉应用平台,由英特尔公司下属研发中心俄罗斯团队发起该项目,开源BSD证书,OpenCV的目标是实现实时计算机视觉,,是一个跨平台的计算 ...
- 如何利用jquery 实现表格数据的搜索功能
在表格的操作中,常常会遇到通过关键字来搜索结果,这个功能用jquery的filter实现非常简单. 我以一个小例子说明: <table> <thead> <tr cols ...
- GitHub客户端发布托管代码
初试GitHub及客户端使用 突然想分享代码,于是记起来曾几何时有人提到过GitHub这个东西,于是便各种百度,注册申请了一个账号,下载了windows客户端,全英文网站就连新手教程也是全英的,现在想 ...
- 通过判断cookie过期方式向Memcached中添加,取出数据(Java)
应用场景:在数据驱动的web开发中,经常要重复从数据库中取出相同的数据,这种重复极大的增加了数据库负载.缓存是解决这个问题的好办法.但是ASP.NET中的虽然已经可以实现对页面局部进行缓存,但还是不够 ...
- 蓝桥网试题 java 基础练习 杨辉三角形
----------------------------------------------------------- ---------------------------------------- ...
- json基础教程|理解Json
一. 在异步应用程序中发送和接收信息时,可以选择以纯文本和 XML 作为数据格式.这一期讨论一种有用的数据格式 JavaScript Object Notation(JSON),以及如何使用它更轻松地 ...