UGUI学习的第二天

昨天老大给我讲了一下代码的规范,比如类名首字母都要大写,私有变量前面加一个下划线,各类的文件也要放到相应的文件夹下面,这样一是方便自己查看,以后也好修改,二是方便项目里其他人员查看。如果像之前自己写的代码,过一个星期再看估计都不知道是什么意思了。
昨天又学习了几个UGUI的控件:Scroll Bar和Scroll View。
主要是想用来实现滑动对象的效果。
面板切换的效果就是通过给图片上添加Button Script,添加监听事件,当点击的时候把其他面板SetActive(false)来实现。
因为图片比较多,所以想通过一个队列对图片和相对应的面板进行存储,然后遍历队列,对每个图片添加监听器,代码:

foreach(Transform child in _panelHero.transform)
{
    if(child.name.StartsWith("Skill"))
    {
            _skillBtn.Add(child.gameObject.GetComponment<Button>())
    }
}
foreach(Transform child in _panelShow1.transform)
{
    if(child.name.StartsWith("Panel"))
    {
            _skillsPanel.Add(child.gameObject)
    }
}
for(int i = 0; i < _skillBtn.Count; i++)
{
    _skillsBtn[i].onClick.AddListener(() => SkillShow(_skillsPanel[i]));
}

_skillBtn是存放图片按钮的队列,_skillsPanel是存放相对应面板的队列。这么写之后结果在添加监听器这条语句中,程序就报错了,_skillBtn.Count的值为7,可是我试着在SkillShow ()中打印i的值,每次点击都是7。纠结了很久之后,发现在添加监听器之前加了一条 GameObject go = _skillsPanel[i],再把go传进函数里就可以成功运行了。分析了一下,原因应该是i的值一直递增而没有保存下来,等鼠标点击的时候直接把最后一个值传了进去,而加了一个临时变量就会把每个对象生成添加到相应的监听器中,这样才实现效果。看来以后这种小地方也要非常的注意,不然也会使程序不能运行。

  • 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、付费专栏及课程。

余额充值