SAIMA/Assets//脚本/GameController.cs

85 lines
2.9 KiB
C#
Raw Normal View History

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.InputSystem;
短学期Log 任务:替换和实装美术素材 1.在教程场景布置图标和文字提示内容 DONE 2.制作GamePlay中背景元素的动画并实装 DONE 3.替换拆迁障碍物美术素材 DONE 任务:实装音乐和音效 1.为两个场景添加音乐,并且在GamePlay场景不重开音乐。 DONE 2.实装人摔地音效 DONE 3.实装人跑动音效 效果不好 DONE 4.实装人马分离音效 DONE *.补充实装人降落到马上的音效 DONE 5.实装创烂障碍物音效 DONE 6.实装圣火点燃音效 DONE 7.实装马磕磕碰碰音效 DONE 8.实装马似音效 DONE 9.实装马着地音效 DONE 10.实装马起跳音效 DONE 11.实装马蹄点地音效 效果不好 DONE 任务:实装特效 1.实装后处理 DONE 2.实装日夜更替 DONE 3.实装树叶飘落 DONE 4.实装圣火粒子 效果不好 DONE 5.实装破碎灰尘 效果不好 DONE 6.实装马蹄灰尘 DONE 7.实装红黑闪特效 DONE 任务:完善没写的零散逻辑 1.在教程场景,若人马分离障碍处没接到人,过一个转场然后复位人和马 **:仍然存在问题,当如此,人的动画失效。这个问题现在不好修,等待人的死亡动画实装后再修 已修复 DONE 2.在教程场景,点燃圣火仅有进入触发器后加载转场然后转移场景的功能,没有点燃圣火的过程,现补充其逻辑 DONE 3.开发GamePlay距离记录和重开系统 DONE 4.策划要在点燃圣火时镜头放大,体现标题感 URP相机不太好做 ABANDON 5.人的死亡动画逻辑之前没做 DONE 任务:测试并修复Bug DONE 修复Bug 1.在教程场景,可破坏障碍物的碎片的层级不对,创烂瞬间会有层级突变的问题。在GamePlay层级,也出现了这个问题。 已修复 DONE 2.现在的高障碍实在太高了,基本有80%以上的概率导致马翻,应该调低障碍物、或者调大马的跳跃力度。 DONE 3.跑步动画和跑步音效完全对不上 加快跑步动画 DONE 4.原爆破给力范围太大,会导致旧的碎片也被波及 已修复 DONE
2022-08-27 19:22:38 +08:00
using UnityEngine.UI;
using DG.Tweening;
using TMPro;
public class GameController : UnitySingleton<GameController>
{
短学期Log 任务:替换和实装美术素材 1.在教程场景布置图标和文字提示内容 DONE 2.制作GamePlay中背景元素的动画并实装 DONE 3.替换拆迁障碍物美术素材 DONE 任务:实装音乐和音效 1.为两个场景添加音乐,并且在GamePlay场景不重开音乐。 DONE 2.实装人摔地音效 DONE 3.实装人跑动音效 效果不好 DONE 4.实装人马分离音效 DONE *.补充实装人降落到马上的音效 DONE 5.实装创烂障碍物音效 DONE 6.实装圣火点燃音效 DONE 7.实装马磕磕碰碰音效 DONE 8.实装马似音效 DONE 9.实装马着地音效 DONE 10.实装马起跳音效 DONE 11.实装马蹄点地音效 效果不好 DONE 任务:实装特效 1.实装后处理 DONE 2.实装日夜更替 DONE 3.实装树叶飘落 DONE 4.实装圣火粒子 效果不好 DONE 5.实装破碎灰尘 效果不好 DONE 6.实装马蹄灰尘 DONE 7.实装红黑闪特效 DONE 任务:完善没写的零散逻辑 1.在教程场景,若人马分离障碍处没接到人,过一个转场然后复位人和马 **:仍然存在问题,当如此,人的动画失效。这个问题现在不好修,等待人的死亡动画实装后再修 已修复 DONE 2.在教程场景,点燃圣火仅有进入触发器后加载转场然后转移场景的功能,没有点燃圣火的过程,现补充其逻辑 DONE 3.开发GamePlay距离记录和重开系统 DONE 4.策划要在点燃圣火时镜头放大,体现标题感 URP相机不太好做 ABANDON 5.人的死亡动画逻辑之前没做 DONE 任务:测试并修复Bug DONE 修复Bug 1.在教程场景,可破坏障碍物的碎片的层级不对,创烂瞬间会有层级突变的问题。在GamePlay层级,也出现了这个问题。 已修复 DONE 2.现在的高障碍实在太高了,基本有80%以上的概率导致马翻,应该调低障碍物、或者调大马的跳跃力度。 DONE 3.跑步动画和跑步音效完全对不上 加快跑步动画 DONE 4.原爆破给力范围太大,会导致旧的碎片也被波及 已修复 DONE
2022-08-27 19:22:38 +08:00
private float cameraTransDistance = 0;
private float cameraStartX;
public struct Death{
任务:开发人马分离系统 分析: 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
2022-08-19 14:23:35 +08:00
public enum DeadReason { Camera , PersonFall }
public DeadReason deadReason;
}
private Horse horse;
private CameraManager cameraManager;
任务:开发人马分离系统 分析: 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
2022-08-19 14:23:35 +08:00
private Person person;
短学期Log 任务:替换和实装美术素材 1.在教程场景布置图标和文字提示内容 DONE 2.制作GamePlay中背景元素的动画并实装 DONE 3.替换拆迁障碍物美术素材 DONE 任务:实装音乐和音效 1.为两个场景添加音乐,并且在GamePlay场景不重开音乐。 DONE 2.实装人摔地音效 DONE 3.实装人跑动音效 效果不好 DONE 4.实装人马分离音效 DONE *.补充实装人降落到马上的音效 DONE 5.实装创烂障碍物音效 DONE 6.实装圣火点燃音效 DONE 7.实装马磕磕碰碰音效 DONE 8.实装马似音效 DONE 9.实装马着地音效 DONE 10.实装马起跳音效 DONE 11.实装马蹄点地音效 效果不好 DONE 任务:实装特效 1.实装后处理 DONE 2.实装日夜更替 DONE 3.实装树叶飘落 DONE 4.实装圣火粒子 效果不好 DONE 5.实装破碎灰尘 效果不好 DONE 6.实装马蹄灰尘 DONE 7.实装红黑闪特效 DONE 任务:完善没写的零散逻辑 1.在教程场景,若人马分离障碍处没接到人,过一个转场然后复位人和马 **:仍然存在问题,当如此,人的动画失效。这个问题现在不好修,等待人的死亡动画实装后再修 已修复 DONE 2.在教程场景,点燃圣火仅有进入触发器后加载转场然后转移场景的功能,没有点燃圣火的过程,现补充其逻辑 DONE 3.开发GamePlay距离记录和重开系统 DONE 4.策划要在点燃圣火时镜头放大,体现标题感 URP相机不太好做 ABANDON 5.人的死亡动画逻辑之前没做 DONE 任务:测试并修复Bug DONE 修复Bug 1.在教程场景,可破坏障碍物的碎片的层级不对,创烂瞬间会有层级突变的问题。在GamePlay层级,也出现了这个问题。 已修复 DONE 2.现在的高障碍实在太高了,基本有80%以上的概率导致马翻,应该调低障碍物、或者调大马的跳跃力度。 DONE 3.跑步动画和跑步音效完全对不上 加快跑步动画 DONE 4.原爆破给力范围太大,会导致旧的碎片也被波及 已修复 DONE
2022-08-27 19:22:38 +08:00
public bool hasGameOver = false;
任务:开发人马分离系统 分析: 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
2022-08-19 14:23:35 +08:00
void Start(){
FindSth();
}
void Update(){
短学期Log 任务:替换和实装美术素材 1.在教程场景布置图标和文字提示内容 DONE 2.制作GamePlay中背景元素的动画并实装 DONE 3.替换拆迁障碍物美术素材 DONE 任务:实装音乐和音效 1.为两个场景添加音乐,并且在GamePlay场景不重开音乐。 DONE 2.实装人摔地音效 DONE 3.实装人跑动音效 效果不好 DONE 4.实装人马分离音效 DONE *.补充实装人降落到马上的音效 DONE 5.实装创烂障碍物音效 DONE 6.实装圣火点燃音效 DONE 7.实装马磕磕碰碰音效 DONE 8.实装马似音效 DONE 9.实装马着地音效 DONE 10.实装马起跳音效 DONE 11.实装马蹄点地音效 效果不好 DONE 任务:实装特效 1.实装后处理 DONE 2.实装日夜更替 DONE 3.实装树叶飘落 DONE 4.实装圣火粒子 效果不好 DONE 5.实装破碎灰尘 效果不好 DONE 6.实装马蹄灰尘 DONE 7.实装红黑闪特效 DONE 任务:完善没写的零散逻辑 1.在教程场景,若人马分离障碍处没接到人,过一个转场然后复位人和马 **:仍然存在问题,当如此,人的动画失效。这个问题现在不好修,等待人的死亡动画实装后再修 已修复 DONE 2.在教程场景,点燃圣火仅有进入触发器后加载转场然后转移场景的功能,没有点燃圣火的过程,现补充其逻辑 DONE 3.开发GamePlay距离记录和重开系统 DONE 4.策划要在点燃圣火时镜头放大,体现标题感 URP相机不太好做 ABANDON 5.人的死亡动画逻辑之前没做 DONE 任务:测试并修复Bug DONE 修复Bug 1.在教程场景,可破坏障碍物的碎片的层级不对,创烂瞬间会有层级突变的问题。在GamePlay层级,也出现了这个问题。 已修复 DONE 2.现在的高障碍实在太高了,基本有80%以上的概率导致马翻,应该调低障碍物、或者调大马的跳跃力度。 DONE 3.跑步动画和跑步音效完全对不上 加快跑步动画 DONE 4.原爆破给力范围太大,会导致旧的碎片也被波及 已修复 DONE
2022-08-27 19:22:38 +08:00
// //当同时按下左右扳机,触发重开,仅调试用
// if(Gamepad.current != null && Gamepad.current.leftTrigger.isPressed && Gamepad.current.rightTrigger.isPressed){
// UnityEngine.SceneManagement.SceneManager.LoadScene(UnityEngine.SceneManagement.SceneManager.GetActiveScene().name);
// }
//如果已经游戏结束并且按下手柄Y键则重新开始游戏
if(hasGameOver && Gamepad.current != null && Gamepad.current.buttonNorth.isPressed){
StartCoroutine(RestartCoroutine());
//UnityEngine.SceneManagement.SceneManager.LoadScene(UnityEngine.SceneManagement.SceneManager.GetActiveScene().name);
}
}
短学期Log 任务:替换和实装美术素材 1.在教程场景布置图标和文字提示内容 DONE 2.制作GamePlay中背景元素的动画并实装 DONE 3.替换拆迁障碍物美术素材 DONE 任务:实装音乐和音效 1.为两个场景添加音乐,并且在GamePlay场景不重开音乐。 DONE 2.实装人摔地音效 DONE 3.实装人跑动音效 效果不好 DONE 4.实装人马分离音效 DONE *.补充实装人降落到马上的音效 DONE 5.实装创烂障碍物音效 DONE 6.实装圣火点燃音效 DONE 7.实装马磕磕碰碰音效 DONE 8.实装马似音效 DONE 9.实装马着地音效 DONE 10.实装马起跳音效 DONE 11.实装马蹄点地音效 效果不好 DONE 任务:实装特效 1.实装后处理 DONE 2.实装日夜更替 DONE 3.实装树叶飘落 DONE 4.实装圣火粒子 效果不好 DONE 5.实装破碎灰尘 效果不好 DONE 6.实装马蹄灰尘 DONE 7.实装红黑闪特效 DONE 任务:完善没写的零散逻辑 1.在教程场景,若人马分离障碍处没接到人,过一个转场然后复位人和马 **:仍然存在问题,当如此,人的动画失效。这个问题现在不好修,等待人的死亡动画实装后再修 已修复 DONE 2.在教程场景,点燃圣火仅有进入触发器后加载转场然后转移场景的功能,没有点燃圣火的过程,现补充其逻辑 DONE 3.开发GamePlay距离记录和重开系统 DONE 4.策划要在点燃圣火时镜头放大,体现标题感 URP相机不太好做 ABANDON 5.人的死亡动画逻辑之前没做 DONE 任务:测试并修复Bug DONE 修复Bug 1.在教程场景,可破坏障碍物的碎片的层级不对,创烂瞬间会有层级突变的问题。在GamePlay层级,也出现了这个问题。 已修复 DONE 2.现在的高障碍实在太高了,基本有80%以上的概率导致马翻,应该调低障碍物、或者调大马的跳跃力度。 DONE 3.跑步动画和跑步音效完全对不上 加快跑步动画 DONE 4.原爆破给力范围太大,会导致旧的碎片也被波及 已修复 DONE
2022-08-27 19:22:38 +08:00
private IEnumerator RestartCoroutine(){
//仅防止多次触发
hasGameOver = false;
//首先呼出黑幕
BlackController.Instance.Trans();
//等到屏幕全黑
yield return new WaitUntil(() => {return BlackController.Instance.AllBlack;});
//切换场景
UnityEngine.SceneManagement.SceneManager.LoadScene(UnityEngine.SceneManagement.SceneManager.GetActiveScene().name);
}
任务:开发人马分离系统 分析: 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
2022-08-19 14:23:35 +08:00
void FindSth(){
horse = FindObjectOfType<Horse>();
cameraManager = FindObjectOfType<CameraManager>();
任务:开发人马分离系统 分析: 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
2022-08-19 14:23:35 +08:00
person = FindObjectOfType<Person>();
短学期Log 任务:替换和实装美术素材 1.在教程场景布置图标和文字提示内容 DONE 2.制作GamePlay中背景元素的动画并实装 DONE 3.替换拆迁障碍物美术素材 DONE 任务:实装音乐和音效 1.为两个场景添加音乐,并且在GamePlay场景不重开音乐。 DONE 2.实装人摔地音效 DONE 3.实装人跑动音效 效果不好 DONE 4.实装人马分离音效 DONE *.补充实装人降落到马上的音效 DONE 5.实装创烂障碍物音效 DONE 6.实装圣火点燃音效 DONE 7.实装马磕磕碰碰音效 DONE 8.实装马似音效 DONE 9.实装马着地音效 DONE 10.实装马起跳音效 DONE 11.实装马蹄点地音效 效果不好 DONE 任务:实装特效 1.实装后处理 DONE 2.实装日夜更替 DONE 3.实装树叶飘落 DONE 4.实装圣火粒子 效果不好 DONE 5.实装破碎灰尘 效果不好 DONE 6.实装马蹄灰尘 DONE 7.实装红黑闪特效 DONE 任务:完善没写的零散逻辑 1.在教程场景,若人马分离障碍处没接到人,过一个转场然后复位人和马 **:仍然存在问题,当如此,人的动画失效。这个问题现在不好修,等待人的死亡动画实装后再修 已修复 DONE 2.在教程场景,点燃圣火仅有进入触发器后加载转场然后转移场景的功能,没有点燃圣火的过程,现补充其逻辑 DONE 3.开发GamePlay距离记录和重开系统 DONE 4.策划要在点燃圣火时镜头放大,体现标题感 URP相机不太好做 ABANDON 5.人的死亡动画逻辑之前没做 DONE 任务:测试并修复Bug DONE 修复Bug 1.在教程场景,可破坏障碍物的碎片的层级不对,创烂瞬间会有层级突变的问题。在GamePlay层级,也出现了这个问题。 已修复 DONE 2.现在的高障碍实在太高了,基本有80%以上的概率导致马翻,应该调低障碍物、或者调大马的跳跃力度。 DONE 3.跑步动画和跑步音效完全对不上 加快跑步动画 DONE 4.原爆破给力范围太大,会导致旧的碎片也被波及 已修复 DONE
2022-08-27 19:22:38 +08:00
cameraStartX = Camera.main.transform.position.x;
}
任务:开发人马分离系统 分析: 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
2022-08-19 14:23:35 +08:00
public void GameOver(Death deathInfo){
短学期Log 任务:替换和实装美术素材 1.在教程场景布置图标和文字提示内容 DONE 2.制作GamePlay中背景元素的动画并实装 DONE 3.替换拆迁障碍物美术素材 DONE 任务:实装音乐和音效 1.为两个场景添加音乐,并且在GamePlay场景不重开音乐。 DONE 2.实装人摔地音效 DONE 3.实装人跑动音效 效果不好 DONE 4.实装人马分离音效 DONE *.补充实装人降落到马上的音效 DONE 5.实装创烂障碍物音效 DONE 6.实装圣火点燃音效 DONE 7.实装马磕磕碰碰音效 DONE 8.实装马似音效 DONE 9.实装马着地音效 DONE 10.实装马起跳音效 DONE 11.实装马蹄点地音效 效果不好 DONE 任务:实装特效 1.实装后处理 DONE 2.实装日夜更替 DONE 3.实装树叶飘落 DONE 4.实装圣火粒子 效果不好 DONE 5.实装破碎灰尘 效果不好 DONE 6.实装马蹄灰尘 DONE 7.实装红黑闪特效 DONE 任务:完善没写的零散逻辑 1.在教程场景,若人马分离障碍处没接到人,过一个转场然后复位人和马 **:仍然存在问题,当如此,人的动画失效。这个问题现在不好修,等待人的死亡动画实装后再修 已修复 DONE 2.在教程场景,点燃圣火仅有进入触发器后加载转场然后转移场景的功能,没有点燃圣火的过程,现补充其逻辑 DONE 3.开发GamePlay距离记录和重开系统 DONE 4.策划要在点燃圣火时镜头放大,体现标题感 URP相机不太好做 ABANDON 5.人的死亡动画逻辑之前没做 DONE 任务:测试并修复Bug DONE 修复Bug 1.在教程场景,可破坏障碍物的碎片的层级不对,创烂瞬间会有层级突变的问题。在GamePlay层级,也出现了这个问题。 已修复 DONE 2.现在的高障碍实在太高了,基本有80%以上的概率导致马翻,应该调低障碍物、或者调大马的跳跃力度。 DONE 3.跑步动画和跑步音效完全对不上 加快跑步动画 DONE 4.原爆破给力范围太大,会导致旧的碎片也被波及 已修复 DONE
2022-08-27 19:22:38 +08:00
hasGameOver = true;
//触发马的死亡功能
horse.Death(deathInfo);
任务:开发人马分离系统 分析: 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
2022-08-19 14:23:35 +08:00
//触发人的死亡功能
person.Death(deathInfo);
//告诉相机马死了
cameraManager.Death(deathInfo);
短学期Log 任务:替换和实装美术素材 1.在教程场景布置图标和文字提示内容 DONE 2.制作GamePlay中背景元素的动画并实装 DONE 3.替换拆迁障碍物美术素材 DONE 任务:实装音乐和音效 1.为两个场景添加音乐,并且在GamePlay场景不重开音乐。 DONE 2.实装人摔地音效 DONE 3.实装人跑动音效 效果不好 DONE 4.实装人马分离音效 DONE *.补充实装人降落到马上的音效 DONE 5.实装创烂障碍物音效 DONE 6.实装圣火点燃音效 DONE 7.实装马磕磕碰碰音效 DONE 8.实装马似音效 DONE 9.实装马着地音效 DONE 10.实装马起跳音效 DONE 11.实装马蹄点地音效 效果不好 DONE 任务:实装特效 1.实装后处理 DONE 2.实装日夜更替 DONE 3.实装树叶飘落 DONE 4.实装圣火粒子 效果不好 DONE 5.实装破碎灰尘 效果不好 DONE 6.实装马蹄灰尘 DONE 7.实装红黑闪特效 DONE 任务:完善没写的零散逻辑 1.在教程场景,若人马分离障碍处没接到人,过一个转场然后复位人和马 **:仍然存在问题,当如此,人的动画失效。这个问题现在不好修,等待人的死亡动画实装后再修 已修复 DONE 2.在教程场景,点燃圣火仅有进入触发器后加载转场然后转移场景的功能,没有点燃圣火的过程,现补充其逻辑 DONE 3.开发GamePlay距离记录和重开系统 DONE 4.策划要在点燃圣火时镜头放大,体现标题感 URP相机不太好做 ABANDON 5.人的死亡动画逻辑之前没做 DONE 任务:测试并修复Bug DONE 修复Bug 1.在教程场景,可破坏障碍物的碎片的层级不对,创烂瞬间会有层级突变的问题。在GamePlay层级,也出现了这个问题。 已修复 DONE 2.现在的高障碍实在太高了,基本有80%以上的概率导致马翻,应该调低障碍物、或者调大马的跳跃力度。 DONE 3.跑步动画和跑步音效完全对不上 加快跑步动画 DONE 4.原爆破给力范围太大,会导致旧的碎片也被波及 已修复 DONE
2022-08-27 19:22:38 +08:00
StartCoroutine(UICoroutine());
}
public RectTransform restartUI;
public TextMeshProUGUI meter;
private IEnumerator UICoroutine(){
//计算相机移动距离
cameraTransDistance = Camera.main.transform.position.x - cameraStartX;
cameraTransDistance /= 5;
//设定UI分数显示为cameraTransDistance
//restartUI = GameObject.Find("重开").GetComponent<RectTransform>();
meter.text = ((int)cameraTransDistance).ToString();
//等待2秒钟
yield return new WaitForSeconds(2);
//UI进入页面
restartUI.DOLocalMoveX(0,1f);
}
}