Exemplo n.º 1
0
    IEnumerator DropItem()
    {
        instructions.enabled  = false;
        itemReady             = false;
        item.transform.parent = itemPreviousParent;
        float endTime = Time.time + unequipTime;
        float percent;
        // set up the destination point
        RaycastHit hit;
        Ray        ray = Camera.main.ScreenPointToRay(new Vector3(Camera.main.pixelWidth / 2, Camera.main.pixelHeight / 2));
        Vector3    destPos;

        // if we try to put it into the ground ...
        if (Physics.Raycast(ray, out hit, pA.interactDistance + 0.5f))
        {
            // float it above ground
            destPos = hit.point + Vector3.up * floatHeight;
        }
        else
        {
            // if we try to put it in the air, move it away from us, then drop it to floatHeight
            destPos = item.position + equipPoint.forward * pA.interactDistance * 0.8f;
            if (Physics.Raycast(destPos, Vector3.down, out hit))
            {
                destPos = hit.point + Vector3.up * floatHeight;
            }
        }
        Quaternion destRot = Quaternion.AngleAxis(equipPoint.eulerAngles.y, Vector3.up);

        while (Time.time <= endTime)
        {
            percent       = 1 - (endTime - Time.time) / unequipTime;
            item.position = Vector3.Lerp(item.position, destPos, percent);
            item.rotation = Quaternion.Slerp(item.rotation, destRot, percent);
            yield return(new WaitForFixedUpdate());
        }
        itemEquipping = false;
        pA.setFree();
        itemSpinner.enabled = true;
        try {
            item.SendMessage("DeactivateItem", SendMessageOptions.RequireReceiver);
        } catch {
            Debug.LogError("EquipObject: item needs to implement DeactivateItem()");
        }
    }
Exemplo n.º 2
0
 public void StartGame()
 {
     BUIC.ClearMenus();
     player.setFree();
 }