示例#1
0
    void increaseValue(float amount)
    {
        progressBar.value += amount;

        if (progressBar.value >= 0.99999)
        {
            // FOUND AND DIGGED AN F*****G ITEM!
            controller.isDigging = false;
            if (foundItem != null)
            {
                foundItem.transform.position = digHole.transform.position + new Vector3(0, 1, 0);
                foundItem.found = true;
                if (foundItem.GetComponentInChildren <BoxCollider>() != null)
                {
                    foundItem.GetComponentInChildren <BoxCollider>().enabled = false;
                }
                foundItem.GetComponent <AudioSource>().Stop();
                foundItems.Add(foundItem);

                uiPanel.ItemFound(foundItem.id); //show in UI

                foundItem         = null;
                progressBar.value = 0;
            }
        }
    }
示例#2
0
    void Update()
    {
        if (controller.isDigging)
        {
            progressBar.value           -= Time.deltaTime * 0.5f;
            digHole.transform.localScale = new Vector3(1f + progressBar.value, 1, 1f + progressBar.value);
            if (foundItem != null)
            {
                foundItem.transform.position = digHole.transform.position + new Vector3(0, -1 + progressBar.value, 0);
            }
            if (progressBar.value <= 0.00005f)
            {
                controller.isDigging = false;
                foundItem            = null;
            }
        }

        if (foundItems.Count > 0)
        {
            for (int i = 0; i < foundItems.Count; i++)
            {
                foundItems[i].transform.Rotate(Vector3.up, 0.3f);
            }
        }
    }
示例#3
0
    public IEnumerator startDigging()
    {
        digHole           = Instantiate(digPrefab, this.transform.position + this.transform.forward * 1.4f, Quaternion.identity);
        progressBar.value = 0.3f;

        foundItem = findClosestItem();
        if (foundItem != null)
        {
            foundItem.transform.position = digHole.transform.position + new Vector3(0, -1 + progressBar.value, 0);
        }
        else
        {
            controller.isDigging = false;
        }
        yield break;
    }
示例#4
0
    private BuriedItem findClosestItem()
    {
        BuriedItem closest = null;

        for (int i = 0; i < buriedItems.Length; i++)
        {
            if (buriedItems[i].found)
            {
                return(null);
            }

            float   minDistItem = buriedItems[i].GetComponent <AudioSource>().minDistance;
            Vector3 itemPos     = buriedItems[i].transform.position;
            Vector3 playerPos   = this.transform.position;
            float   distToItem  = Vector3.Distance(playerPos, itemPos);
            if (distToItem <= minDistItem)
            {
                closest = buriedItems[i];
                break;
            }
        }
        return(closest);
    }