Help us understand the problem. What is going on with this article?

Photon Cloud × Unity GameJam 事前勉強 - Rigidbodyの同期

More than 5 years have passed since last update.

GameJamの事前勉強会のために作った資料です。

http://kokucheese.com/event/index/95326/

ネットワークゲームにおいてオブジェクトの動きに関するものには注意を払わなければいけません。
UnityではRigidbodyを例として説明します。

名称未設定-1 copy.png

ネットワークゲームではオブジェクトの 位置・角度・スケール がどの画面から見ても同じでなければいけません。
Rigidbodyは物理演算に則って、オブジェクトの 位置・角度 が変化します

しかし、動きをRigidbodyに任せてしまうと、どの画面でも動きが全く同じになるという保証がされなくなります

タイムラグが原因で1つの画面のみ違う動作をしてしまった場合、どう修正を行いますか?

そこで、ある程度保証ができるように、少し特殊な処理を施さなければいけません

名称未設定-1 copy.png

  • 自分の画面 : Rigidbodyの適用によって変化した位置・角度情報を相手の画面に送信する
  • 相手の画面 : isKinematicにチェックを入れ、重力による挙動をなくす
  • 相手の画面 : 送られてきた位置・角度情報を適用する

以上でRigidbodyの同期についてのお話は終了です。これを理解しておくと開発がぐっと楽になるのではないでしょうか。

最後に実際に適用する時のソースコード

Sample.cs
using UnityEngine;
using System.Collections;

[RequireComponent(typeof(PhotonView))]
[RequireComponent(typeof(Rigidbody))]
public class Sample : Photon.MonoBehaviour
{
    void Awake ()
    {
        // 相手の画面だったら
        if (!photonView.isMine) {
            rigidbody.isKinematic = true;
        }
    }
}

初学者向け問題はこちら

Unityに関する初歩問題

published by

日本Androidの会 秋葉原支部 Unity部
https://www.facebook.com/groups/android.akb.unity/

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした