1

几周以来,我一直在研究解决方案,我认为是时候伸出援手了。我正在尝试制作一个在控制器按下时播放声音的按钮,每个人都会听到那个声音。使用 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

4

0 回答 0