这样的想法,我甚至没有任何想法,如何做好它。一般的想法是:比如说,舞台上有三个NPC(有条件的),还有一个建筑(有条件的)。每个全国人大都有自己的任务,但我不知道如何把一个没有任务的全国人大派到大楼里去工作,而不是同时派几个。也就是说,每个全国人大都有工作状态,也有一个状态0,这意味着全国人民代表大会不忙,可能有几个这样的“免费”状态,如果一个人被分配了工作状态--去大楼,那么每个有这个身份的人都会去,但是我们怎么能保证只有一个免费的全国人民代表大会呢?我知道这个问题很难理解,也很可怕,但也许有人会理解.
发布于 2022-02-10 01:55:43
所以,首先,我做了代码:
文件WorkingPlace:
public static bool SignalFreeNPCPoint = false;
public static int WorkingPlaceNPC = 0;
public void ProductBoardNPC()
{
SignalFreeNPCPoint = true;
WorkingPlaceNPC += 1;
}
public void ProductBoard_Stop()
{
WorkingPlaceNPC -= 1;
SignalFreeNPCPoint = true;
}这个"ProductBoardNPC()“和"ProductBoard_Stop()”方法是for按钮。
文件NPCSctipt:
public List<GameObject> ListGM = new List<GameObject>();
public int TaskNumber = 0;
void Update()
{
TaskManager();
LogicNPC();
}
private void TaskManager()
{
switch (TaskNumber)
{
case 0:
//You code
break;
case 1:
ListGM.Remove(gameObject);
break;
case 2:
ListGM.Remove(gameObject);
break;
case 3:
ListGM.Remove(gameObject);
break;
case 4:
ListGM.Remove(gameObject);
break;
}
}
private void LogicNPC()
{
if (WorkingPlace.SignalFreeNPCPoint == true)
{
if (TaskNumber == 0 & WorkingPlace.WorkingPlaceNPC == 1)
{
ListGM.Add(gameObject);
TaskNumber = 4;
}
if (TaskNumber == 4 & WorkingPlace.WorkingPlaceNPC == 0)
{
TaskNumber = 0;
}
WorkingPlace.SignalFreeNPCPoint = false;
}
}代码的工作方式:当单击按钮时,搜索状态为0的NPC,然后将具有此状态的上一个NPC输入到数组中,然后给它不同的状态来执行“工作”,然后从数组中移除它,以便为另一个NPC腾出空间。在这种情况下,数组是一个缓冲区,只是必需的。如果你有比我的更好的想法,我会很乐意听)实现是一个干净的自行车由拐杖,但它的工作完美。是的,关于FPS的提取,它似乎没有加载太多的系统,如果有提取,然后写什么来修复。
https://stackoverflow.com/questions/71043934
复制相似问题