示例#1
0
    public void OnStartInteract(Transform player)
    {
        playerSelection.ClearPrompt();

        // If door has never been opened, it can only be opened from one side
        if (onlyOpensOnOneSide && doorState == 0)
        {
            if (Vector3.Dot(playerSelection.cameraTransform.forward, transform.right) < 0f)
            {
                playerSelection.PushMessage("Does not open from this side.");
                return;
            }
        }

        if (locked)
        {
            if (playerSelection.TryRemoveItem(keyItem))
            {
                playerSelection.PushMessage("Unlocked.");
                locked = false;
            }
        }

        if (!locked)
        {
            interacting = true;
            if (blockMouselook)
            {
                player.GetComponent <Player>().OnStartInteract();
            }
        }
        else
        {
            if (keyItem)
            {
                playerSelection.PushMessage("Locked, " + keyItem.name + " Required.");
            }
            else
            {
                playerSelection.PushMessage("Locked.");
            }
        }
    }
示例#2
0
    public void OnStartInteract(Transform player)
    {
        playerSelection.ClearPrompt();

        if (playerSelection.TryAddItem(item))
        {
            playerSelection.PushMessage("Picked up " + item.name);
            Destroy(gameObject);
        }
    }
示例#3
0
    void Interaction()
    {
        // Object states
        foreach (var item in toEnable)
        {
            item.SetActive(true);
        }
        foreach (var item in toDisable)
        {
            item.SetActive(false);
        }

        if (triggerMethod)
        {
            triggerMethod.SendMessage("TriggerMethod", SendMessageOptions.DontRequireReceiver);
        }


        // UI Pushes
        if (pushObjective != "")
        {
            playerSelection.PushObjective(pushObjective);
        }
        if (pushSubtitle != "")
        {
            playerSelection.PushSubtitle(pushSubtitle);
        }
        if (pushMessage != "")
        {
            playerSelection.PushMessage(pushMessage);
        }
        if (pushPrompt != "")
        {
            playerSelection.PushPrompt(pushPrompt);
        }

        // Audio
        if (sound)
        {
            playerSelection.PushAudio(sound, soundVolume);
        }

        // Ending
        if (doOnce)
        {
            done = true;
        }
    }