Unity3D游戏开发笔记4.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Unity3D游戏开发笔记4.doc

2014.1.26 10.【边界与优化昼夜系统...崩溃的Unity!】 今天该做什么了呢? 先把地图几个边界吧。虽然这不是必须的,不过为了玩家的生命财产安全,我觉得加上应该是必要的。 新建一个立方体,把它放大到合适的位置,然后放在地图边界上,比例差不多了,就可以把它拖放到以前建立的_MyPrefab中。然后复制三个,分别放在))四个边界上,就可以了。 如图: 最后只要把方块的渲染选项的勾去掉,让它看不见即可。 (2)然后吧,就把昼夜系统再完善下。 在当初写昼夜系统的时候,如果到了晚上,是直接把平行光的角度往上转,虽然这样达到了将场景弄到夜晚的目的,但是因为这样的原因是由地形挡住造成的,所以地面会有一些高光,导致晚上的场景看起来不但假,也不好看,还极度浪费资源。 这里就得改一下。 方式也不难,就是在DayAndNightManager脚本中,在改动平行光角度的switch语句里,将“黎明”至”晚上“的判断语句的break前,加上这么一句: m_tramsform.light.type=LightType.Directional; 而在”晚上”至 “黎明“之前,都加上一句改变灯光类型为点光源的: m_tramsform.light.type=LightType.Point; 虽然在这儿其实在各个关键点换一下灯光就可以了,不过考虑到往后肯定会有直接改变时间的时候,未免出现bug,这里就麻烦点,不去省资源了(也省不了多少)。 到了晚上,阴影一去,draw call这下子降了近一半。资源省惨了~~。 (3)这儿,本来应该是写今天刚做的物品栏之类的,可惜,电脑在休眠中断了一次电,什么都没了...... 除了脚本,地图全变成了空的! 我能说什么了? 而且还什么预设都没存,这下.....被坑得好惨啊! 欲哭无泪啊555.。。。恐怕只有重做了......幸好代码还在! 555...... 2014.1.27 11.【新的开端与角色暴击...GUI浮动提示栏。】 又再次搞了一天,弄出了这么个模样: 不多说了,说多了就是泪..... 在这儿写是因为想提点一下:绝对不能把整个daikonGUI的UI做成预制体,否则Unity直接崩溃没话说 .....刚又折腾了个小时才找出这么个原因! 以前丢失的都是些地图,幸好与大局无碍。 而且刚才测试的时候又发现了一个Bug,就是如果敌人直接被Destroy掉的话,刷新点就会因为判断没有重置而一直不再刷新(就像是上面那个平台,敌人掉下去就被Destroy了,刷新点却一直不刷敌人了。) 修复的方法很简单,就是在EnemySpawn脚本中, if(m_madeEnemyState!=null) { m_madeEnemyIsDead=m_madeEnemyState.m_isDead; } 后面加上一句重置敌人没有刷出的判断: if(m_madeEnemyState!=null) { m_madeEnemyIsDead=m_madeEnemyState.m_isDead; }else m_madeEnemyIsDead=true; 这下就可以了! 现在的话,还是先给玩家角色增加一个属性:“暴击率”吧。不然,光是敌人有暴击攻击,就不大公平了。 打开PlayerControl脚本,在最开始的属性标签中新定义一个属性: public float m_bigAttack=0.02f;//暴击几率 同时,在对象标签中分别定义一个暴击的粒子效果和音效: //粒子效果 public Transform m_attackParticle;//普通攻击粒子 public Transform m_bigAttackParticle;//暴击粒子 //声音 public AudioClip m_attackAudio;//普通攻击音效 public AudioClip m_bigAttackAudio;//暴击音效 最后就是在下面的攻击过程中进行暴击的判断,将Attack函数中关于攻击的判定改成这样: if(Input.GetMouseButtonDown(0)) { if(m_attackDelay0) { if(Random.valuem_bigAttack) { m_animation.Play(Attack3-1); m_forward=m_transform.TransformDirection(Vector3.forward); //Debug.DrawLine(m_transform.position+Vector3.up,new Vector3(10,0,0),Color.

文档评论(0)

xinshengwencai + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5311233133000002

1亿VIP精品文档

相关文档