Я работаю над решением уже несколько недель и думаю, что пришло время обратиться к нему. Я пытаюсь сделать кнопку, которая воспроизводит звук при нажатии на контроллер, каждый будет слышать этот звук. Используя 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