
分析:分为五个阶段,每个阶段一屏宽。前四个阶段是教程阶段,分别仅放一种障碍(第一个无障碍)和提示,提示参照茶杯头教程关。 每个阶段间有明显间断、镜头固定,但当马通过该阶段的障碍后,镜头右移一个阶段。马不能倒退,相机左侧有空气墙。 到达最终阶段后,按流程点燃圣火进入游戏 设计: 1.搭建核心场景,放置障碍物。 DONE 2.设计教程及开始场景管理器 (1.控制相机,使马每通过一个阶段,相机运动到记录的位置 DONE (2.给相机左侧添加空气墙 DONE (3.管理器要明确记录此时玩家处于哪个阶段 DONE (4.当玩家进入点燃圣火触发器,切断操控,等待动画结束或者一些信号,触发从右向左的渐变黑幕遮挡全屏,随后转场到新场景。 DONE 至此,基本逻辑完成,需要补充大量细节、替换大量美术素材。 修复问题: 1.人马分离障碍连续出现可能导致致命问题,修复使其不能连续出现 DONE 2.GamePlay中,远处的山需要补充运动逻辑 DONE
47 lines
1.3 KiB
C#
47 lines
1.3 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using DG.Tweening;
|
|
|
|
public class BlackController : UnitySingleton<BlackController>
|
|
{
|
|
public float moveDuration = 0.5f;
|
|
public float waitDuration = 0.5f;
|
|
public bool AllBlack = false;
|
|
|
|
private void Start() {
|
|
DontDestroyOnLoad(transform.parent.gameObject);
|
|
}
|
|
|
|
private void Update() {
|
|
transform.parent.transform.position = Camera.main.transform.position + new Vector3(0,0,1f);
|
|
}
|
|
//呼出从左到右的黑幕
|
|
public void Trans(){
|
|
StartCoroutine(ComeInCoroutine());
|
|
}
|
|
|
|
private IEnumerator ComeInCoroutine(){
|
|
//移动黑幕遮住屏幕
|
|
transform.DOLocalMoveX(0f, moveDuration);
|
|
//等待移动结束,并等待预留的加载时间
|
|
yield return new WaitForSeconds(moveDuration);
|
|
|
|
AllBlack = true;
|
|
yield return new WaitForSeconds(waitDuration);
|
|
|
|
|
|
//此时屏幕全黑,并已等待完加载时间
|
|
//揭开黑幕
|
|
AllBlack = false;
|
|
transform.DOLocalMoveX(-170f, moveDuration);
|
|
|
|
//等待黑幕运动结束
|
|
yield return new WaitForSeconds(moveDuration);
|
|
|
|
//恢复黑幕位置
|
|
transform.localPosition = new Vector3(170f, 0f, 0);
|
|
|
|
}
|
|
|
|
} |