UGUI学习的第一天

今天刚来到项目组,看了一下项目的demo,自己尝试着模仿一下项目的登录界面以及场景的切换。

本人之前没怎么接触过UGUI,甚至没怎么接触过Unity,所以算是一个初学者,从这篇日志开始记录自己的学习之路。


首先我在场景中新建了一个canvas,然后在网上下了一张1024*582的图片想当背景图,发现canvas的大小是固定的,想把整个canvas铺满的话就要拉伸图片,这样就使得图片的比例改变,视觉效果就不好了。一开始以为要把canvas铺满才可以,后来才知道把图片等比例放大就可以了,图片超出摄像机的范围也没太关系。

之后做unity屏幕自适应,Rect Transform那些属性没有具体了解,发现canvas上有一个Canvas Scale组件,其中UI Scale Mode属性设置为Scale With Screen Size,Screen Match Mode设置为Expand。这样好像就实现了屏幕自适应。

运行游戏时开始加载的进度条是通过两个Image控件实现的,一个Image设置为背景,另一个Image挂载在它下面,作为它的子物体,通过其中的Fill Amount属性来调节进度条的多少。

龙哥还给我讲了些项目中代码处理的一些细节和经验。

一般的项目结构为:

-Assets

--Plugins(全局脚本)

--Resources(资源文件)

--Scene(场景文件)

--Scripts(脚本文件)

--StreamingAssets(资源包)

热更新的时候只有资源文件可以更新进入游戏中,如果想把其他文件也更新那就要把整个游戏进行重新安装。为了避免这个情况,会把unity中的GameObject打包成一个预设,当需要的时候再添加进场景中,脚本当中组件的获得也不能像之前一样再进行拖拽赋值,这样运行场景时会导致对象丢失,使脚本失效程序报错。所以正确的做法是在脚本中使用GameObject.Find("xxxx").GetComponment<xxx>()进行获取,其中要注意的是“GameObect”是在Hierarchy面板上的一级目录进行查找,如果要查找的物体是其他GameObject 下的子物体时,则必须使用子物体的名称.Find("xxxx").GetComponment<xxx>()来进行获取,不然会得到null,这个问题让我纠结了好久。同样的,预设里的脚本也必须动态的进行加载,这里要使用的是C#的反射机制。

Plugins在库中对应的是firstpass.dll,Scripts对应的是CSharp.dll,游戏运行时会加载firstpass.dll进内存中,如果想加载Scripts中的脚本则必须先读取CSharp.dll文件转换为Byte形式,再通过Reflection得到assembly,根据脚本的名字查找到后添加到对应的对象上。这里要注意的是只需要根据此办法添加到一个GameObject上,再想添加Scripts的脚本时就可以直接使用AddComponment<脚本名>进行添加。

比如说开始游戏的时候已经在现有对象上挂载了一个MainControl.cs,在这个脚本中为A对象挂载A脚本,语句为A.AddComponment(assembly.GetType("A"))。

这时候要给B对象挂载B脚本,语句应该为B.AddComponment<B>就可以了,因为A和B脚本是在同一个库中的同一路径下。


今天先学习这么多,来日继续。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学习Unity UGUI可以参考一些资源和示例。例如,可以参考引用中提到的Unity UGUI实现无限循环滑动列表功能的示例场景。导入这个示例场景并运行,可以了解如何使用Unity UGUI来实现循环滑动列表的功能。 此外,UGUI还可以用于对图片进行各种操作,如旋转、缩放、截取和裁剪等。可以参考引用中提到的使用UGUI对图片进行任意角度、大小、缩放和位置的操作。UGUI还提供了设置圆角或矩形方式操作图片的功能。 通过学习这些资源和示例,可以更好地掌握Unity UGUI的使用方法,从而进行更加丰富和多样化的界面设计和交互功能的开发。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [Unity UGUI无限循环列表](https://download.csdn.net/download/qq_33547099/13799875)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [unity UGUI图片任意截取和裁剪](https://download.csdn.net/download/lizhenxiqnmlgb/85090424)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值