姓名

张骁

时间

2016年6月30日

学习内容

今天我对用户反映的另一个问题进行了解决。在最开始的设计阶段,我们为了游戏的整体氛围只设计了一种背景,没有考虑用户对多种背景的需要。针对这个问题,我们主要加入了两种新的风格不同的背景,使色调有所改变,

在加入背景的过程中最大的问题就是如何使各个场景中的背景都跟着改变。由于Unity的载入单位是场景,所以更改当前场景的背景并不会影响下一个场景的背景,而我们的每一个关卡都是存储为了一个场景,这就使得更换背景变得更加困难了。原来的情况是,每一个场景中的背景都是静态的,并不会发生改变,但是现在的要求是在菜单中所做的更改要能够反映到每一个关卡当中。

UImanager是一个单例,在整个游戏当中负责存储当前关卡等信息,在载入各个关卡时他会被保留进新的关卡当中,所以用它来储存背景信息也十分合适,但只是储存是不够的,更换背景同样重要,但是更换的时机也是一个难题。

Unity的循环当中主要有Start和Update两个函数,Start在初始化时执行,Update在每一帧都执行。如果在每一帧都对当前背景进行检验是十分浪费资源也是没有必要的。我们希望每当载入新场景的时候检测背景是否是期望的背景,若不是则更换。但是问题在于如何抓住这个时机。如刚才所说,Start在初始化时执行,但是如前所述UImanager在各个场景之间不会被重复创建,而是会被保留进新场景中,这也就意味着它的Start不会被执行。那我们应该如何抓住这个时机呢?

方法十分简单,虽然UImanager不会被重复创建,但是我们的主角会在每个场景中重复被初始化,这意味着它的Start函数在每次载入新场景的时候都会被执行,所以我们在主角的Start函数中调用UImanager的更新背景的函数。

代码如下:

void Start()

{

//其他代码...

UImanager = GameObject.Find("UImanager");

UImanager.SendMessage("syncBkg");

}

private void syncBkg()

{

GameObject bkg1 = GameObject.Find("bkg1");

if(bkg1)

{

SpriteRenderer spriteRenderer

= bkg1.GetComponent<SpriteRenderer>();

if(spriteRenderer)

{

spriteRenderer.sprite = bkgS[bkg];

}

}

}

截图如下:

添加了新的菜单选项

添加了更换新背景的按钮

新背景能够在载入新场景时正确更新

所遇问题

目前为止还未遇到问题

解决方案

转载于:https://www.cnblogs.com/ACskyline/p/5631441.html

软工课设第一周周四报告相关推荐

  1. 用starUML画的软工课设:外卖点餐管理系统

    软件工程课设:外卖点餐管理系统 一.概述 二.可行性分析 2.1技术的可行性 2.2经济的可行性 2.3操作的可行性 2.4法律的可行性 2.5结论 三.需求分析 3.1功能性需求 3.2非功能性需求 ...

  2. Slimer软工课设日报-2016年6月30日

    根据上期预告,今天的主要工作是增加了初始界面和设置界面 初始界面 点击start按钮,若在设置中已成功连接服务器,则会进入账号登录界面,否则弹窗报错 void start() { //开始游戏按钮if ...

  3. Slimer软工课设日报-2016年7月1日

    今天主要解决了全屏状态下按钮无法顺利点击的问题 起初我以为是程序运行代码过多导致的卡顿,多点几次才能顺利交互,后来多调试了几次发现是判定区的问题 全屏后本来按钮的判定区是按照窗体比例放大且移动到指定位 ...

  4. 辩论赛计算机软件更重要论据,高三班会课《第一周辩论赛(网络使人更亲近还是更疏远)》辩论赛 反方论据...

    高三班会课<第一周辩论赛(网络使人更亲近还是更疏远)>辩论赛 辩论赛反方论据 老师同学们,大家好! 我的观点是,网络使人疏远. 第一,取信息的快捷性和低成本增加了人的独立性,降低了对他人的 ...

  5. β阶段第一周版本控制报告

    项目名:取件帮 组名:可以低头,但没必要 组长:付佳 组员:张俊余 李文涛 孙赛佳 田良 于洋 段晓睿 杨金铭 一.β阶段checkin次数记录 日期 付佳 张俊余 李文涛 田良 孙赛佳 于洋 杨金铭 ...

  6. 软帝Java培训班第一周周记

    关于本周学习内容与心得体会 本人是一大四即将毕业的学生,正值人生迷茫之际不知何去何从.就在此时,我们学院恰巧迎来了软帝公司的学员招新,我也机缘巧合来到了软帝当起了学员. 软帝的老师不会区别对待任何来学 ...

  7. 福大软工1816 - 404 Note Found选题报告

    目录 NABCD分析引用 N(Need,需求): A(Approach,做法): B(Benefit,好处): C(Competitors,竞争): D(Delivery,交付): 初期 中期 个人贡 ...

  8. 福大软工 · 第七次作业 - 需求分析报告(404 Note Found队)

    目录 组队后的团队项目的整体计划安排 项目logo及思维导图 项目logo 思维导图 产品思维导图 产品思维导图-引导 产品思维导图-后端数据处理.存储 产品思维导图-短信识别 产品思维导图-智能分析 ...

  9. 网工课设——校园网规划与设计

    网络工程原理课的课程设计,做了校园网,要求如下 某学校的网络需求如下: 1. 学校的网络主要由网络中心进行管理,负责网络的运行监控与维护.负责维护的服务器有: a) web 服务器(对外开放) b) ...

  10. 玩下软工项目,第一轮--全局Context的获取,SQLite的建立与增删改查,读取用户通话记录信息...

    项目的Github地址:https://github.com/ggrcwxh/LastTime 采用基于git的多人协作开发模式 软件采用mvc设计模式,前端这么艺术的事我不太懂,交给斌豪同学去头疼了 ...

最新文章

  1. MFC中利用CFileDialog选择文件并读取文件所遇到的问题和解决方法
  2. linux vi 强制退出_linux的编辑大法
  3. 坐火车一定要带身份证
  4. java做a_Java编程实现A*算法完整代码
  5. Python Demo 06 金庸武侠写作风格分析
  6. Rational Rose 2003 下载、破解及安装方法(图文)
  7. Mysql存储引擎中InnoDB与Myisam的区别
  8. 读书笔记2013第18本:《像外行一样思考,像专家一样实践》
  9. pythonselenium提高爬虫效率_[编程经验] Python中使用selenium进行动态爬虫
  10. php文件名解析漏洞 nginx,nginx服务器解析漏洞(一)
  11. vim 删除多行_Vim 可视化模式入门
  12. Spring JDBC事务支持类jdbcTemplate(了解)
  13. 磨刀不误砍柴工,使用visual studio之前应该先了解这些...
  14. mysql悲观锁和乐观使用实例_MySQL 悲观锁和乐观锁
  15. java end_Java Matcher end()用法及代码示例
  16. 提升前端线上问题发现率的方法
  17. 推荐15个清爽简约风格的 HTML5 网站作品
  18. 教你如何赚取你的第一桶金 - 2048(含源码)
  19. 如何利用少数粉丝,实现短时间流量倍增?
  20. 讲义:第五项修炼(学习型组织的艺术与实践)

热门文章

  1. 大前端-全栈-node+easyui+express+vue+es6+webpack+react
  2. JavaScript 编码指南
  3. Cors 跨域 共享
  4. jQuery常用属性过滤选择器
  5. oracle日期函数2!
  6. JavaScript中charCodeAt函数
  7. 大道至简——书摘与思考
  8. EF 4.1 一些操作
  9. Hdu 1026 Ignatius and the Princess I
  10. 项目是如何完成的(一)