先总结一下今天的收获:在一个脚本类中对其成员变量进行初始化时,什么时候在Awake()中,什么时候在Start()中是有讲究的。

    1)当成员变量会被外部脚本引用时,尤其是该成员变量是一个自己定义的非脚本类必须用构造函数初始化的时候。并且,被外部脚本引用指的是 “引用该变量的内部成员函数或属性被外部函数调用的时候”,该成员变量应该在Awake函数中进行初始化。

    2)如果该成员变量只在自身所在的脚本类被引用时,则应该在Start函数中进行初始化。

  今天遇到的第一个坑就是因为没有注意以上两点。我在Start函数中使用构造函数初始化了一个Poker类,但是这个类的实例在自身的公有方法中,被外部其他脚本调用了。这倒不是最重要的,因为之前我遇到过一次。重要的是:在Update()函数中拷贝预设体,其Awake()函数在当前帧的Update中就会被立即调用,但是Start()函数则会在在下一帧执行。

  

  第二个坑是这样的:我将一个共有函数绑定到NGUI的UIButton脚本里的OnClick事件中作为事件处理函数,在这个共有函数中使用了两个if语句,则当事件触发时函数不会被执行,但是我改为 if(){} else if(){}就可以执行,明明相同的逻辑却又不一样的结果,让人匪夷所思呀。

  

  第三个坑是:在NGUI中有一个大坑,就是创建NGUI中的游戏对象时,如果你使用Instantiate()函数,创建的控件会非常的大,但是使用NGUITools.AddChild()函数时生成的控件大小就会正好合适。【原因还不祥】

  

一下我将之前遇到的问题说一下,也是空引用异常的问题,和第一个坑差不多,其实也不能说是坑,而是自己对自己的逻辑没有考虑清楚,将各种类的相互引用考虑进来就会发生问题的。

  

之前已经实现了跑道的动态生成,今天要是实现的是在动态生成的跑道上的路点处随机产生提前准备好的陷阱预设体。

遇到的问题:因为之前在动态生成跑道时,顺便实现了另一个类,路点管理器类。我们的陷阱就要在路点附近生成,所以,利用之前跑道上自带的路点是很好的选择。但是,将道具生成器脚本类顺利加入到之前的代码还是比较繁琐的。因为封装的函数太依赖于动态生成跑道和记录游戏角色附近的路点这两个逻辑,所以必须再次明白之前是如何设计生成跑道和如何计算路点的,并且这还不是最重要的。

最重要的问题是:在ElementsGenerator脚本类中维护一个List<Transform> waypointList来负责在当前跑道上所有路点处生成障碍物、陷阱。由于是脚本类,所以并不存在构造函数这个概念,所以我就在 Awake()这个函数中创建waypointList,但是我明明已经创建了该列表,但是总是报空引用这样的错误。我百思不得其解,最后,我明白了为什么???

主要问题是:我在PlayMove这个脚本类中的Awake()函数中对作为单例出现在整个游戏场景中的跑道生成器进行了初始化:raceTrackGenerator.Init ()   这里这个函数的初始化是在 waypointList之前执行的【不同脚本中的Awake函数执行顺序我不知道如何确定】。主要问题的产生就是因为跑道生成器初始化时需要调用ElementsGenerator脚本类的GetWaypointList()函数,但是此时该函数必须的waypointList还没有创建出来。

NGUI外包开发总结一下今天的收获的更多相关文章

  1. app外包开发注意事项大全『最新』

    随着移动互联网的高速发展,很多互联网创业公司或传统向互联网转型的公司都急需发开一款app软件,多数公司会选择让外包公司来开发.问题来了,App外包市场鱼龙混杂,我们要如何在这里面选择一个靠谱的公司,这 ...

  2. SNMP开发c#,高薪诚聘,或者外包开发

    现在手里有一个IT资产管理方面的项目,主要会用到SNMP协议,要用这个协议进行开发,对网络上的设备进行控制, 现在高薪诚聘高手,或者项目外包合作,有意向的同学们可以联系我,时间紧迫, QQ:39011 ...

  3. 我想外包开发一个APP,需要多少钱,多少时间?

    在一个阳光明媚的下午,我正瘫坐在椅子上改bug.忽然有人给我发微信:“我想做个app,多长时间,多少钱?” 从我从业iOS开发到现在,这个问题被问过无数次,比那句:“你是程序员,那你会修电脑吗?”还要 ...

  4. 承接Holograms外包 Holograms内容定制 Holograms场景外包开发

    HoloLens仿真器与文档现已向开发者们开放 如何为Microsoft HoloLens全息眼镜开发应用? 每款运行Windows 10的设备都使用了相同统一的Windows内核.所以你学习了所有有 ...

  5. AR图像识别 AR识别图像 AR摄像头识别 外包开发 AR识别应用开发就找北京动点软件

    当绝大多数手机厂商还在追求后置双摄拍照的时候,已经有人开始潜心研究AR手机了.刚刚结束的美国消费电子展上,华硕发布了全新的ZenFone AR手机,配备5.7英寸2K屏.骁龙821处理器.8GB内存, ...

  6. HMCharacteristicType 承接homekit 外包开发 微信 ELink9988

    承接homekit 开发 微信 ELink9988 让HMCharacteristicTypePowerState:String配件的电源状态.该值是一个布尔值.让HMCharacteristicTy ...

  7. iOS - 外包开发常用第三方库(1)

    一:第三方插件1:基于响应式编程思想的oc地址:https://github.com/ReactiveCocoa/ReactiveCocoa2:hud提示框地址:https://github.com/ ...

  8. app开发外包注意事项,2017最新资讯

    我们见过很多创业者,栽在这app外包上.很多创业者对于app外包这件事情不是特别重视,以为将事情交给app外包公司就完事了,实际上不是的.无论是从选择app外包公司还是签订合同.售后维护等各方面都有许 ...

  9. 【Unity3D游戏开发】NGUI之多分辨率下完美分布式协同开发 (五)

    NGUI多分辨率下完美分布式协同开发:不同分辨率下相对于屏幕坐标的Perfab数据不再丢失 NGUI多分辨率下完美分布式协同开发不同分辨率下相对于屏幕坐标的Perfab数据不再丢失 开发问题 原因分析 ...

随机推荐

  1. JAVA接口里面的变量

    在interface里面的变量都是public static final 的.所以你可以这样写:public static final int i=10;或则int i=10:(可以省略掉一部分) 注 ...

  2. Qt代码

    ui->LoginPushButton->setStyleSheet(//正常状态样式 "QPushButton{" "background-color:rg ...

  3. 2019-04-26-day041-数据库的索引

    内容回顾 多表查询 联表查 内连接 左右两表中能连上的行才被保留 表1 inner join 表2 on 表1.字段1=表2.字段2 外连接 左外连接 表1中所有的项都会被保留,而表2中只有匹配上表1 ...

  4. 今天想写一下关于SpringMVC的视图解释器

    昨天我写了一下SpringMVC最爱金丹的项目的配置流程,这样搭建完项目之后呢我发现我每个请求都得加个.do什么的后缀,这让我开发得很不爽,于是呢今天就想配置一下这个试图解释器,这样做的目的有两个:第 ...

  5. koala 的使用

    koala是一个前端预处理器语言图形编译工具,支持Less.Sass.Compass.CoffeeScript,帮助web开发者更高效地使用它们进行开发.跨平台运行,完美兼容windows.linux ...

  6. ArrayList、LinkedList和vector的区别

    1.ArrayList和Vector都是数组存储,插入数据涉及到数组元素移动等操作,所以比较慢,因为有下标,所以查找起来非常的快. LinkedList是双向链表存储,插入时只需要记录本项的前后项,查 ...

  7. python基础—购物车小程序练习

    要求:顾客可以根据商品编号购买工资允许内的商品,购买完成后,打印购买列表. def main(): salary = input("what is your salary ?") ...

  8. CodeBlocks无法调试的解决方法

    闲话: 万万没想到我也会写这个东西.一开始软件工程课的时候老师要求我们写博客园,一直都是被动地在写博客.刚刚在重温C语言的时候发现的各种各样问题觉得还是写下来比较好,一旦以后自己又忘了呢……(摊手 顺 ...

  9. ios jenkins从0快速配置

    1,安装:brew install jenkins2,命令行里:jenkins 回车,第一次会生成密码和保存密码的路径如:/Users/uname/.jenkins/secrets/initialAd ...

  10. C语言-第4次作业得分

    作业链接:https://edu.cnblogs.com/campus/hljkj/CS201801/homework/2523 作业链接:https://edu.cnblogs.com/campus ...