LoginSignup
0
0

More than 3 years have passed since last update.

Photon×WebGL(4)Cubeをサラリーマンに

Last updated at Posted at 2020-12-09

やりたいこと

・Cubeをサラリーマンに置き換え(★)

021.JPG

--

2020にバージョンアップして毎回発生するやつ
・ネットワークオブジェクトが生成されない
・DefaultPool failed to load、、、ってエラー
=>ネットワークオブジェクト右クリック→Reimportで回避

001.JPG

--

まずアセットの購入
今回買ったアセットこちら

スクリーンショット 2020-12-09 204051.jpg

アセットの使い方
・サンプルシーンと動画で確認
 ・理解出来た事
  ・LowPolyBusinessPeople_DemoSceneしーんオープン

=>Scene状態※メッシュが確かに重なっているのが確認できた。
01.JPG
=>Game状態(1)
02.JPG
=>Game状態(2)毎回再生すると確かにランダムに変わる
03.JPG

  ・動画で確認した手順
   ・プレファブ複製
   ・アンパックプレファブする
   ・スクリプト削除
   ・プレファブだったオブジェクトの下記2つの不要パーツを削除
    ・Male_BrnSkin_BaldGoatee_A※顔と手
    ・Suit_RedBlue_ShirtTie※スーツ
 ・分からなかったこと
  ・HumanがHDRP対応っぽい。低ポリゴンをHDRPで見る意味があるのか?見たらどうなるのかすごく気になった
  =>バージョン合わせてHDRPシーン読んでみたけどHumanは見れなかった。残念。。HDRPシーンなんか読めない

04.JPG

--

アニメーション設定
このあたり、、めんどくさい
・Animator Controllerでキャラの動作設定する
・Stateで状態をつくる
・Make Transitionでやりたい状態につなぐ
・Parametersで遷移条件設定
・構文でanimatorの処理を書く

=>これを(LPBP_Animations)
005.JPG

=>こうしただけ
006.JPG

--

プレファブ化
・Cubeと入れ替え
 ・物理的なやつ
  ・サラリーマン
   ・今LowPolyBusinessPeople_DemoSceneにまだいるので、、、
    ・対象のサラリーマンをResourcesフォルダにひきづって手放す(プレファブ化)
    ・フォトン設定シーンに戻る
  ・キューブ捨てる
  ・サラリーマンプレファブの名前をGamePlayerに変更(キューブの名前)
・構文で移動の処理内容を修正する
 ・Animatorコンポーネント部分を追加
  ・止まったり、動いたりさせるので
 ・Animatorコンポーネント部分を追加
public class GamePlayer : MonoBehaviourPunCallbacks
{
    private Animator animator;
    public float movement;//0.003くらいがいい感じ

    void Start()
    {
        animator = GetComponent<Animator>();
    }

    void Update()
    {
        if (Input.GetKey("up"))
        {
            transform.position += transform.forward * movement;
            animator.SetBool("walk", true);
        }

        else if (Input.GetKey("down"))
        {
            transform.position -= transform.forward * movement;
            animator.SetBool("walk", true);
        }
        else
        {
            animator.SetBool("walk", false);
        }
        if (Input.GetKey("right"))
        {
            transform.Rotate(0, 1, 0);
        }
        if (Input.GetKey("left"))
        {
            transform.Rotate(0, -1, 0);
        }
    }
}

--

修正点
・位置がいつもランダム
 =>制作中は、いつも同じ位置にしたいので生まれるところを修正
        var v = new Vector3(0,0,0);
        PhotonNetwork.Instantiate("GamePlayer", v, Quaternion.identity);
--
・回転が同期していない
 =>PhotonTransformViewのRotationの設定でレ点を入れる
--
・ポリゴンの上を移動させる
 =>床作って、Rigidbody+BoxColider
 そのままだと下図の様に落ちるので、、、
 =>床作って、Rigidbody+BoxColider

010.JPG

011.JPG

020.JPG

 =>サラリ万にもRigidbody+CapsuleColiderつける
 サラリ万、CapsuleColiderなので??かやる
 =>RigidbodyのFreezeRotation[x軸とz軸]にレ点必要

次回:1人称カメラ視点にトライ(★)
次回の次:チャット(日本語入力対応)(★★★)

(参考サイト)
photon resources folder not reliable in unity 2020?
【PUN2】Unityでオンラインマルチプレイを爆速で実装する
【Unity】自分の思い描いたキャラクターを作成し、最速で動かす

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0