Как связать кнопку VR с PUN в Unity? - PullRequest
1 голос
/ 08 марта 2019

Я работаю над решением уже несколько недель и думаю, что пришло время обратиться к нему. Я пытаюсь сделать кнопку, которая воспроизводит звук при нажатии на контроллер, каждый будет слышать этот звук. Используя VRTK и PlayoVR, я могу сделать не сетевую версию, где игрок может провести свою руку через куб, щелкнуть по триггеру на контроллере, и он издаст звук.

Это код для этого куба:

namespace VRTK.Examples  {
using UnityEngine;


public class Whirlygig : VRTK_InteractableObject
{
    public GameObject AudioSource;
    public AudioSource LeftSpeaker;

    public override void StartUsing(VRTK_InteractUse currentUsingObject = 
null)
    {
    AudioSource.GetComponent<AudioSource>().Play();
    }
}
}

Где я заблудился, так это как связать его с Photon Unity Networking. Вот что у меня есть:

namespace PlayoVR
{
using UnityEngine;
using VRTK;
using UnityEngine.Video;
using NetBase;

public class PlaySync : Photon.MonoBehaviour
{
    public AudioSource LeftSpeaker;
    public GameObject Whirlgig;
    private bool StartUsing;

    // Use this for initialization
    void Awake()
    {
        GetComponent<VRTK_InteractableObject>().InteractableObjectUsed += 
new InteractableObjectEventHandler(DoPlay);
    }

    void DoPlay(object sender, InteractableObjectEventArgs e)
    {
        StartUsing = true;
    }

    // Update is called once per frame
    void Update()
    {
        // Handle firing
        if (StartUsing)
        {
            CmdPlay();
            StartUsing = false;
        }
    }

    void CmdPlay()
    {
        photonView.RPC("NetPlay", PhotonTargets.All);
    }

    [PunRPC]
    void NetPlay()
    {
        LeftSpeaker.Play();
    }
}
}

Как вы, наверное, видите, я новичок. С этим кодом, когда я кладу руку в куб и нажимаю на курок, ничего не происходит. Если кто-то может предоставить какую-либо помощь или даже альтернативу, я был бы очень признателен.

С уважением, TheMusiken

...