Unity 3D Photon 简单应用

PhotonVoice

如何开启声音的通讯

  1. 导入photonVoice的包到unity项目中,并且填入再photon所申请的network id 和 voice id
    在这里插入图片描述在这里插入图片描述

  2. 在场景中添加一个object用于调用脚本
    在这里插入图片描述
    添加4个脚本
    在这里插入图片描述
    a. 在【push to talk script】脚本中添加两个组件:[push to talk button]与[button prafabs] 一个是场景中自己建的button 一个是prefabs里的模板
    b.在【character instantiation】脚本中添加【spawn point】可直接把本object的transform传入
    c.在最底添加4个人物模板。用于做传输声音的媒介

  3. 往场景中添加两个按钮。一个用于触发多人语音事件(未验证),一个用于开启话筒的事件
    在这里插入图片描述
    a.在多人语音按钮中添加一个事件
    在这里插入图片描述
    a).传入新建的object【photonVoice Scene Object】并调用【push to talk script】里面的【ontogglebaluechanged】方法
    b.在【push to talk button】按钮中添加【push to talk script】里面的 开关函数
    在这里插入图片描述

  4. 新增一个object并且加入 【photon voice speaker】和【photon voice recorder】, 并取消勾选recorder
    在这里插入图片描述

如何开启手机麦克风

  1. https://github.com/cbaltzer/UnitySpeakerFix
  2. 下载上述链接的工程。并且在自己的工程中导入下载的工程里面的脚本
  3. 在开启语音通讯的时候添加 iPhoneSpeaker.ForceToSpeaker()

PhotonNetwork 多端公网数据同步

下载插件PhotonNetwork

在商店中下载插件PhotonNetwork (如果要使用voice,就下载PhotonVoice这个插件),要使用他就必须在官网中注册并且申请appid。

填入id

  • 用下面的方法生成的gameobject就可以做到自动同步到所有加入到房间的电脑中
PhotonNetwork.Instantiate("ShareData", Vector3.zero, Quaternion.identity, 0);
//ShareData是存在于Resources文件夹中的gameobject,在这个gameobject中必须加有PhotonView这个组件。如果想要这个gameobject的transform同步。就可以再加入PhotonTransform,然后把这个组件拖入photonview中
//photonNetwork生成的gameobject有一个特点。如果是本机生成的对他进行transform操作,他就会同步到所有端,但如果不是本地生成的。再别的端进行操作,会出现只修改了本地的状态这种现象
//有一个方法可以判断是否是本地生成的
//gameobject.GetComponent<PhotonView>().isMine
//还有一个同步方法RPC,外界调用提供的方法 playTimeline() 即可调用所有再同房间内的该组件执行以下事件
//请开始你的表演
    public void playTimeline()
    {
        GetComponent<PhotonView>().RPC("playTimeline_RPC",PhotonTargets.All);
    }
    [PunRPC]
    private void playTimeline_RPC()
    {
        GameObject timeline = GameObject.Find("Car");
        if (!timeline)
        {
            return;
        }
        timeline.GetComponent<TimeLneController>().setPlayableDirectorPlay(true);
    }

如何让本地mesh和别的端的复制体进行transform同步

  • 用photonnetwork进行生成mesh(mesh中必须带有photonview)
  • mesh上加上同步组件
  • 动态改变mesh位置,就会自动同步过去
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值