コード例 #1
0
ファイル: TaskInfo.cs プロジェクト: KubilayColak/Swarm-Ai
    // Update is called once per frame
    void Update()
    {
        for (int i = 0; i < listOfResources.Count; i++)
        {
            if (listOfResources[i])
            {
                if (listOfResources[i].GetComponent <ResourceStats>().EnergyValue >= currentresourceEnergy)
                {
                    highestResource       = listOfResources[i].GetComponent <ResourceStats>();
                    highestresourceEnergy = highestResource.EnergyValue;
                }
            }
        }

        if (currentResource == null && GetComponent <AgentMovement>().HarvestInfo != null)
        {
            currentResource = GetComponent <AgentMovement>().HarvestInfo;
        }
        else if (currentResource != null)
        {
            currentresourceEnergy = currentResource.EnergyValue;
        }

        ResourcePriority = Mathf.Clamp01(currentresourceEnergy / highestresourceEnergy);


        for (var i = listOfResources.Count - 1; i > -1; i--)
        {
            if (listOfResources[i] == null)
            {
                listOfResources.RemoveAt(i);
            }
        }

        if (Position.currentHitObject)
        {
            if (Position.currentHitObject.GetComponent <ResourceStats>())
            {
                ResourceStats resouce = Position.currentHitObject.GetComponent <ResourceStats>();

                if (resouce.addList)
                {
                    //print("already in list");
                }
                else if (!resouce.addList)
                {
                    resouce.addList = true;
                    listOfResources.Add(Position.currentHitObject);
                }
            }
            else if (Position.currentHitObject.GetComponent <HiveInfo>())
            {
                hiveinfo = Position.currentHitObject.GetComponent <HiveInfo>();
                if (!GetComponent <AgentMovement>().Task)
                {
                    if (hiveinfo.globalLocation.Count != 0)
                    {
                        AddItem(hiveinfo.globalLocation);
                        for (int i = 0; i < listOfResources.Count; i++)
                        {
                            if (listOfResources[i].GetComponent <ResourceStats>().EnergyValue > 0)
                            {
                                GetComponent <AgentMovement>().GetTask(listOfResources[i].GetComponent <ResourceStats>());
                                GetComponent <AgentMovement>().Task = true;
                                return;
                            }
                        }
                    }
                }
                else
                {
                    hiveinfo.AddItem(listOfResources);
                    AddItem(hiveinfo.globalLocation);
                }
            }
        }
        else
        {
        };
    }
コード例 #2
0
ファイル: TaskInfo.cs プロジェクト: KubilayColak/Swarm-Ai
 void Start()
 {
     Position = GetComponent <SphereCaster>();
     hiveinfo = GetComponent <HiveInfo>();
 }