BITFALL/Assets/ReadMe.md

83 lines
1.7 KiB
Markdown

####项目架构与说明
>>Artists 项目专用文件地址
>>BITKit 工具包,通常不需要动
>>Mods 主要存放DLC等内容
>>Plugins 插件存放地址
>>Standard Assets 资产包目录
>>StreamingAssets GDNet会用到的生成目录
>>Libs 项目专用类库
>>Fltoto Fltoto专用文件夹
#### Libs内容写法
#####首先,你需要在脚本的程序集中引用
>SerializeReference Extensions
#####接着定义接口
~~~CSharp
public interface IAction
{
void Excute();
}
~~~
#####新建类,并实现接口
~~~CSharp
[System.Serializable]
public class BITAction:IAction
{
public void Excute()
{
Debug.Log("BIT执行了该任务")
}
}
[System.Serializable]
public class FltotoAction:IAction
{
public void Excute()
{
Debug.Log("Fltoto执行了该任务")
}
}
~~~
#####最后控制器会这么调用接口
~~~CSharp
[SerializeReference, SubclassSelector]
public IAction action;
void Start()
{
//执行该任务
action.Excute();
}
~~~
#####这就是我们如何利用接口进行解耦
~~~CSharp
//物品容器接口
public interface IContainer
{
bool AddItem();
bool RemoveItem();
bool TryGetItem(Guid key,out var item);
}
//武器控制器
public class GunController
{
[SerializeReference, SubclassSelector]
public IContainer container;
void TryFire()
{
if(container.TryGetItem(ammo,out ammo))
{
if(ammo.count>1)
{
Fire();
}else
{
Jam();
}
}
else
{
PlayVoice("没子弹了呀");
SwitchEquip("Hand");
}
}
}
~~~