
1.制作障碍系统 (1.制作几种类型的障碍物的预制体 ((*.编写障碍物基类,以下几种均继承自基类,含碰撞体,RememberY(生成障碍物时该有多大的Y) ((1.矮障碍,仅碰撞体 ((2.高障碍,仅碰撞体 ((3.可冲破障碍 (((1.除基本碰撞体外,额外包含一个触发器,比碰撞体先检测到马,同时获取马的x速度,大于阈值则给障碍做破碎,用马的力度决定破碎力,关闭碎块和马的碰撞 (((*.导入某2D破碎插件 ((4.人马分离障碍 (((WAIT,需要等待人马分离系统先搭建 (2.编写障碍物生成系统 ((1.每若干时间,生成一个随机一种障碍,若干的范围可控 (((1.设计协程,从预制体列表中随机出一种,并在计算好的位置实例化,随后等待范围内的若干时间,然后检查马的存活情况,若马仍存活,重新调用本协程 ((2.生成的位置:x在相机右侧若干不变距离,y根据障碍物的不同而不同,需要计算保存。 (3.编写障碍物消亡系统 ((1.每个障碍物和碎片都会在离开镜头后被删除
87 lines
1.9 KiB
C#
87 lines
1.9 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
/// <summary>
|
|
/// 相机管理员,主要控制游戏核心玩法中,相机向右移动和卡死死法的判定
|
|
/// </summary>
|
|
public class CameraManager : MonoBehaviour
|
|
{
|
|
/// <summary>
|
|
/// 相机移动的速度
|
|
/// </summary>
|
|
[Header("相机移动的速度")]
|
|
public float speed = 1f;
|
|
|
|
|
|
private Transform killWall;
|
|
|
|
void Start()
|
|
{
|
|
InitSth();
|
|
FindSth();
|
|
CreatSth();
|
|
}
|
|
|
|
|
|
void Update() {
|
|
//向右移动镜头
|
|
Move();
|
|
}
|
|
|
|
public void Death(GameController.Death deathInfo)
|
|
{
|
|
//相机不再运动
|
|
speed = 0;
|
|
}
|
|
|
|
void CreatSth()
|
|
{
|
|
killWall.gameObject.AddComponent<KillWall>();
|
|
}
|
|
|
|
void FindSth()
|
|
{
|
|
killWall = transform.Find("KillWall");
|
|
//killWall = GameObject.Find("KillWall").transform;
|
|
if(killWall == null) Debug.LogError("没找到KillWall,请检查相机是否有叫此名字的子物体");
|
|
}
|
|
|
|
void InitSth(){}
|
|
|
|
|
|
/// <summary>
|
|
/// 每帧调用,向右移动
|
|
/// </summary>
|
|
void Move(){
|
|
transform.position += (Vector3.right * speed * Time.deltaTime);
|
|
}
|
|
class KillWall : MonoBehaviour
|
|
{
|
|
void OnTriggerEnter2D(Collider2D other) {
|
|
if(other.tag == "HorseHead")
|
|
{
|
|
GameController.Death death;
|
|
death.deadReason = GameController.Death.DeadReason.Camera;
|
|
GameController.Instance.GameOver(death);
|
|
}
|
|
}
|
|
|
|
void OnTriggerExit2D(Collider2D other) {
|
|
Debug.Log("出去了一个:" + other.name);
|
|
switch(other.tag)
|
|
{
|
|
case "Fragment":
|
|
Destroy(other.gameObject);
|
|
break;
|
|
case "Obstacle":
|
|
Destroy(other.gameObject);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|