栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > 其他

Unity委托踩坑实例

其他 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Unity委托踩坑实例

直接上代码

 Button btn;
    string test = "ta他啊";
    int temp = 99;
    private void Awake()
    {
        btn = transform.GetComponent

结果

string值:ta他啊int值:99

string值:她int值:1024

结论

委托是封装一个方法,这个方法里面所有的变量其实都是传的地址,而不是值,这也就说明了为什么当你去循环注册button时会出现数组越界

比如一个for循环 i<5, 意思就是i=5的时候跳出循环

你的i传到委托里,其实传地址进去而不是一个值,当循环结束,i的值也就变成了5,点击事件当然会出现数组越界的错误。有些人循环注册事件老是最后一个值也是这个原因

解决方法就是直接再声明一个变量int temp=i,把temp传进委托里,因为temp仅仅是保留了i的值。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/902008.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号