facebook twitter hatena line email

「Unity/photon/fusion/SharedMode」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(シーン初期設定)
(同期キャラクタ作成)
行24: 行24:
 
#PlayerCharacterのNetworkTransformのInterpoplationTargetに、↑で作成したInterpoplationTargetを入れる。
 
#PlayerCharacterのNetworkTransformのInterpoplationTargetに、↑で作成したInterpoplationTargetを入れる。
 
#PlayerCharacterをProject側のPrefabsのディレクトリに移動。
 
#PlayerCharacterをProject側のPrefabsのディレクトリに移動。
 +
==プレイヤー生成==
 +
<pre>
 +
using Fusion;
 +
using UnityEngine;
 +
public class PlayerSpawner : SimulationBehaviour, IPlayerJoined
 +
{
 +
    public GameObject PlayerPrefab;
 +
 +
    public void PlayerJoined(PlayerRef player)
 +
    {
 +
        if (player == Runner.LocalPlayer)
 +
        {
 +
            Runner.Spawn(PlayerPrefab, new Vector3(0, 1, 0), Quaternion.identity, player);
 +
        }
 +
    }
 +
}
 +
</pre>
 +
#PlayerSpawner.csを作り、上記を貼り付ける。
 +
#"Prototype Runner"オブジェクトにPlayerSpawner.csをAddComponentする

2023年11月1日 (水) 23:58時点における版

公式

始め方 https://doc.photonengine.com/ja-jp/fusion/current/tutorials/shared-mode-basics/1-getting-started

準備

  1. アセットのシリアル化を実行 [Edit > Project Settings > Editor > Asset Serialization > ModeのForce Text] (初期設定なので、設定されてるかも)
  2. Mono Cecilのインストール(Window > Package Manager > 右上+をクリック > Add package from git URL、"com.unity.nuget.mono-cecil"で、追加)
  3. Unity/photon/fusion/インストール [ショートカット]

シーン初期設定

  1. 空のシーンを作成
  2. Window/Fusion/GameObject/Setup/Networkingを選択し、"Prototype Network Start"と、"Prototype Runner"を、追加する。
  3. Unityを再生すると、Start~な感じのダイアログが出て実行できることを確認。
  4. SharedModeにするために、"Prototype Network Start"のStartModeをAutomaticにして、AutoStartAsをSharedにする。

同期キャラクタ作成

  1. 空オブジェクトを作成し、名前を"PlayerCharacter"に
  2. 作ったObjectのInspectorを開いて、NetworkObjectを、AddComponentする。
  3. 一旦、NetworkObjectの"Destroy When State Authority Leaves"にチェックして、削除同期させる。
  4. Allow State Authority Overrideのチェックを外して、他のクライアントが操作できるようにする。
  5. CharacterControllerをAddComponentする。これはキャラ操作用。
  6. NetworkTransformをAddComponentする。
  7. 3dObject/Capsuleを作成し、"Interpolation Target"に名前を変更する。CapsuleColliderを削除。それを、PlayerCharacterの下に、移動。
  8. PlayerCharacterのNetworkTransformのInterpoplationTargetに、↑で作成したInterpoplationTargetを入れる。
  9. PlayerCharacterをProject側のPrefabsのディレクトリに移動。

プレイヤー生成

using Fusion;
using UnityEngine;
public class PlayerSpawner : SimulationBehaviour, IPlayerJoined
{
    public GameObject PlayerPrefab;

    public void PlayerJoined(PlayerRef player)
    {
        if (player == Runner.LocalPlayer)
        {
            Runner.Spawn(PlayerPrefab, new Vector3(0, 1, 0), Quaternion.identity, player);
        }
    }
}
  1. PlayerSpawner.csを作り、上記を貼り付ける。
  2. "Prototype Runner"オブジェクトにPlayerSpawner.csをAddComponentする