私のゲームでは、別のオブジェクトを見ながら、初期状態と大きな状態の間にあるキューブを持っています。これはシングルプレイヤーではうまくいきますが、マルチプレイヤーに持ってこれば、両方のクライアント(ホストが1人)でアップデートできるように、適切な組み合わせのオプションを見つけることができません。各プレイヤーは自分のキューブをアクティブにできますが、他のマシンには表示されません。このスクリプトは、ネットワークIDを持つボタン上にあり、キューブにもアクセスします。キューブには、ネットワークIDとネットワーク変換もあります。Unet/Unity 5の別のインタラクティブオブジェクトから変更された非プレイヤオブジェクトのトランスフォームを同期しますか?
シングルプレーヤーのコード参照:ちょうどあなたが既にそれを読んでいない場合には、私は非常にUnity Networking Manual
を経由示唆
void Update() {
if (Camera.main != null) {
RaycastHit hit;
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hit)) {
if (hit.collider.gameObject == gameObject && hit.distance < 5) {
PlatformScale();
} else {
PlatformReset();
}
}
}
}
void PlatformScale() {
platform.transform.localScale = Vector3.Lerp (platform.transform.localScale, platformScale, 3f * Time.deltaTime);
}
void PlatformReset() {
platform.transform.localScale = Vector3.Lerp (platform.transform.localScale, platformStartingScale, 3f * Time.deltaTime);
}
オブジェクトはインスタンス化されていないため、動作する必要がありますか?私はちょうどその場面でそれを持っています。私はマニュアルを読んだが、別のデバイスで制御されているノンプレイヤーオブジェクトの変換を更新することはできない。もしあなたが直接それを持っているなら、それは私を助けてくれるでしょう。 –
それはちょうどそれを産むことによって動作するはずです...モバイル上のImはひどいフォーマットのために残念です。あなたは空のgameobjectをシーンに追加して、この中にスクリプトを追加してみることができます: 'public GameObject cubePrefab; public OnStartServer(){NetworkServer.Spawn(cubePrefab); void } 'キューブのプレハブを作成し、そのプレハブをネットワークマネージャの生成可能オブジェクトに登録し、それをインスペクタのcubePrefabスロットにドラッグして上記のスクリプトを作成する必要があります。あなたのキューブとやり取りして、私に戻ってみてください。それが動作しないことを確認できれば、私はもっと助けることができます。 – Wafer
こんにちは私は助けのおかげで数時間、テストすることはできません。ちょうど私はアイデアを持っているのですが、なぜオブジェクトがゲーム内で修正されるために生成されなければならないのですか?別のボタンにあるスクリプトをプレイヤーに移動しなければなりませんか? –