
分析: 1.其是与马并列的存在 2.具有状态:Normal:骑在马背,Shoot:从发射到着地到平台,Walk:在平台行走,landing:降落,Recover:若成功降落至马背,从刚判定成功到恢复到Normal态的中间态,为Recover态,Dead:判定为失败的瞬间以后都为Dead态。 3.效果要求:到达障碍物前某一位置后,人自动弹射,降落至平台,然后开始匀速移动,脱离平台后降落,之后持续判定是进入Recover还是Dead态。进入Recover态后,修正其偏移,使其回到默认的位置,Dead后,触发GameOver事件。 子任务:使人紧紧跟随马 1.当人处于Normal态,每帧同步人的位置和旋转到马背某处。 效果正常。 DONE 子任务:设计障碍物 1.仅跑道有碰撞体。 2.在障碍物主体之前有触发器,保证用户通过时能检测到,当检测到人进入触发器时,触发人的函数,Shoot()。这个触发仅有一次。 3.当检测到人着陆到平台上,触发人的函数Land()。 4.当检测到人离开平台,触发人的函数FallOff() DONE 子任务:完成人的Shoot、Land、Falloff函数 Shoot: 1.给予刚体一个固定的朝向右上角的速度,使其刚好能抛到平台上。 2.从Shoot到Walk,大约有1~2秒时间,不能让人脸着地前进吧。所以,需要在1秒内修正人的旋转,修正完后锁定刚体Z旋转。 Good Job!效果不错 DONE Land: 1.此时人脚着地处于平台上,让人按照固定的速度一直朝着右边前进即可 比较简单 DONE FallOff: 由于胶囊碰撞体的特殊性,下落时会触发多次FallOff,这是不行的。同时,人在边缘直接坠落非常难看,所以这里加上一段小跳跃。 1.当触发FallOff,给刚体一个右上的速度,模拟跳跃 Good Job,效果很不错 DONE 子任务:完成马接住人的判定和控制系统 1.在马背安置触发器,当检测到玩家进入,触发人的Recover函数 2.完成人的Recover函数,使人在短时间内回到指定的位置和旋转,恢复的最后把人的状态恢复到Normal DONE 子任务:开发,人直接掉落到地面的死亡逻辑 1.直接掉落到地面后,触发GameOver 子任务:测试 1.发现人Recover功能的问题,Recover时的目标点是固定的,但是恢复的过程中马会动,所以这种办法从根本上就有问题。再多写一个动态的追踪比较麻烦,姑且让人恢复得快一点,这样就看不出来什么破绽。 已解决 2.人有时发射不到人马分离的平台上,应该是发射速度太小导致的,已调大。 3.我认为现在创烂障碍物的速度门槛太低了,已适当加快 4.人马分离障碍会突然出现而不是从屏幕右侧进入出现,这是人马分离障碍体积过大导致的。目前只能适当右移障碍物生成点解决。 5.发现Bug,本来可创烂障碍物的爆破力度会随着马的速度而改变,但现在经常响应不到。 已修复。 暂未发现更多问题。 至此,人马分离障碍物的逻辑基本完成 *修复Bug 1.原先马在触发器也会被阻挡,这是因为马脚供力的算法的错误导致的,要从根本解决需要修改复杂的算法,所以这里使用Trick,将触发器的物理层转移到忽略射线检测层,解决了这个问题。 DONE 2.发现Bug,本来可创烂障碍物的爆破力度会随着马的速度而改变,但现在经常响应不到。原来监听的是马的速度,由于整个数学模型的特殊性,马本体的速度变化极其诡异,所以易导致监听错误。应采用新的监听方式,不再监听马本体速度,而是监听用户过去若干时间内的输入变化,由此来决定爆破力度。 不是!我的代码没问题,是这个插件的作者的代码的问题,非常啥卵。已通过修改插件作者源码解决问题。 DONE
53 lines
1.7 KiB
Plaintext
53 lines
1.7 KiB
Plaintext
%YAML 1.1
|
|
%TAG !u! tag:unity3d.com,2011:
|
|
--- !u!162 &1
|
|
EditorUserSettings:
|
|
m_ObjectHideFlags: 0
|
|
serializedVersion: 4
|
|
m_ConfigSettings:
|
|
RecentlyUsedSceneGuid-0:
|
|
value: 515250075c0c595e5f5a5e71122159444e4e4a2f7a7d7f602f284d66b4b76661
|
|
flags: 0
|
|
RecentlyUsedSceneGuid-1:
|
|
value: 5550060701065c085e5c5924162609444f4f4b297e70226674284564b1b8326d
|
|
flags: 0
|
|
RecentlyUsedSceneGuid-2:
|
|
value: 0204525104005f5f5e5d5526117b0b44424e4073752d2536747c1b31e7b3673c
|
|
flags: 0
|
|
RecentlyUsedSceneGuid-3:
|
|
value: 02020157070050580c5b582340215c44464f4b297f7d7e64792d1c62b1e16269
|
|
flags: 0
|
|
RecentlyUsedSceneGuid-4:
|
|
value: 54000c5304065f580b5d5f7045730c444315197c75797f317f714a60b2b6323d
|
|
flags: 0
|
|
RecentlyUsedSceneGuid-5:
|
|
value: 5b520d0503545b0d0c0c0a2715770748154f4d2c7d7d7e627a7d4a35b4e1646a
|
|
flags: 0
|
|
RecentlyUsedSceneGuid-6:
|
|
value: 05080302550c580e080c092712740644154f19737e7872697d284a64b4e2663e
|
|
flags: 0
|
|
RecentlyUsedSceneGuid-7:
|
|
value: 02070656525008025e595f23132659444f4e4178787c756679784f35e3b8373e
|
|
flags: 0
|
|
RecentlyUsedSceneGuid-8:
|
|
value: 5603015e5556080c0b585e27167308444f4e1c2e7c7f7132797e1f31b4b76c3c
|
|
flags: 0
|
|
vcSharedLogLevel:
|
|
value: 0d5e400f0650
|
|
flags: 0
|
|
m_VCAutomaticAdd: 1
|
|
m_VCDebugCom: 0
|
|
m_VCDebugCmd: 0
|
|
m_VCDebugOut: 0
|
|
m_SemanticMergeMode: 2
|
|
m_DesiredImportWorkerCount: 3
|
|
m_StandbyImportWorkerCount: 2
|
|
m_IdleImportWorkerShutdownDelay: 60000
|
|
m_VCShowFailedCheckout: 1
|
|
m_VCOverwriteFailedCheckoutAssets: 1
|
|
m_VCProjectOverlayIcons: 1
|
|
m_VCHierarchyOverlayIcons: 1
|
|
m_VCOtherOverlayIcons: 1
|
|
m_VCAllowAsyncUpdate: 1
|
|
m_ArtifactGarbageCollection: 1
|