
场景:【序章-家中】
1.创建脚本【Door】,用来编写门相关
2.创建CG【暂用-战友】
3.优化脚本【CG管理员】,使其可以自动寻找CG,不用再手动拖入
4.优化脚本【ACG】,使其可以应付没有结束事件的CG
5.创建多态【准备出发】
6.创建事件【当播完开门演出】
7.优化一个很重要的基类【一般可交互物体】,使其可以对付排布密集的可交互的情况
下班。至此,完成了序章的流程框架,还有很多细节需要后面扣。明天一定会开始搭建第一关,因为游戏系统之前已经写了大概,应该不会很困难。加油吧。🙏
40 lines
1.4 KiB
C#
40 lines
1.4 KiB
C#
using System.Collections;
|
||
using System.Collections.Generic;
|
||
using UnityEngine;
|
||
using UnityEngine.UI;
|
||
|
||
public class Interactive : MonoBehaviour
|
||
{
|
||
// Start is called before the first frame update
|
||
//这是所有可交互物体的基类
|
||
public GameObject m_interface;//可交互物体一般都和一个UI界面挂钩,这就是那个UI界面
|
||
|
||
//这是一对碰撞检测代码。当玩家进入,将自身传给玩家。当玩家退出,把玩家的catch清空
|
||
void OnTriggerEnter2D(Collider2D other)
|
||
{
|
||
if(other.tag == "Player")
|
||
{
|
||
other.GetComponent<M_Player>().catched = this;
|
||
}
|
||
}
|
||
void OnTriggerExit2D(Collider2D other)
|
||
{
|
||
if(other.tag == "Player")
|
||
{
|
||
//如果目前退出当前交互区域的时候,玩家的捕捉物体是自己,才把玩家的捕捉清空。否则说明玩家在推出前就捕捉到了新的
|
||
//对象。这样是用来解决排布密集的可交互物体的问题
|
||
if(other.GetComponent<M_Player>().catched == this) other.GetComponent<M_Player>().catched = null;
|
||
}
|
||
}
|
||
//
|
||
|
||
//当这个可交互物体被玩家交互。一般需要重写这个函数。
|
||
public virtual void OnCall(){}
|
||
//
|
||
|
||
//以下为针对各具体可交互对象的虚拟函数,在具体物体中重写
|
||
public virtual void Coding(string temp){}
|
||
public virtual void StopRepareTheTelephoneLine(){}
|
||
//
|
||
}
|