Пример #1
0
    void PickUpSpecialItem(GameObject item)
    {
        item.transform.position = new Vector2(transform.position.x, transform.position.y + 1);
        item.transform.SetParent(this.transform);
        SpecialItems.Remove(item);

        currentState = HumanStates.Place;
    }
Пример #2
0
    void Start()
    {
        currentState = HumanStates.Search;
        gm = GameObject.Find("GameManager").GetComponent<GameManager>();
        rm = GameObject.Find("GameManager").GetComponent<RoomGenerator>();
        rcm = GameObject.Find("GameManager").GetComponent<RoomChangeManager>();

        SpecialItems = rm.AiTracker;
        ItemGoalPlacement = GameObject.FindGameObjectsWithTag("Heartagram").ToList();
    }
Пример #3
0
    void GoToPlaceItem(GameObject item)
    {
        transform.position = Vector3.MoveTowards(transform.position, ItemGoalPlacement[0].transform.position, 4f * Time.deltaTime);

        if (Vector2.Distance(transform.position, ItemGoalPlacement[0].transform.position) <= 0)
        {
            currentState = HumanStates.Search;
            ItemGoalPlacement[0].GetComponent<MissionObjective_ItemNode>().HasItem = true;
            item.transform.SetParent(null);
            ItemGoalPlacement.Remove(ItemGoalPlacement[0]);
        }
    }
Пример #4
0
    GameObject FindClosestSpecialItem(List<GameObject> specItems)
    {
        GameObject nearestTarget = null;
        float closestDistance = Mathf.Infinity;
        Vector3 currentPosition = transform.position;

        foreach(GameObject potentialTarget in specItems)
        {
            Vector3 directionToTarget = potentialTarget.transform.position - currentPosition;
            float dSqrToTarget = directionToTarget.sqrMagnitude;
            if(dSqrToTarget < closestDistance)
            {
                closestDistance = dSqrToTarget;
                nearestTarget = potentialTarget;
            }
            if(directionToTarget == Vector3.zero) {
                itemToPickUp = nearestTarget;
                currentState = HumanStates.PickUp;
            }
        }
        return nearestTarget;
    }