質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Photon Cloud

Photon Cloudは、オンラインゲーム開発向けネットワークエンジン。リアルタイムマルチプレイ通信のプラットフォームであるPhotonの一つです。ネットワーク通信によるオンラインゲームを開発・運営するために必要なツールがサーバー環境に構築されています。

Photon Server

Photon Serverは、オンラインゲーム開発向けネットワークエンジン。リアルタイムマルチプレイ通信のプラットフォームであるPhotonの一つで、サーバにインストールして使うサーバアプリケーションです。全てカスタマイズが可能で権限管理もできます。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

0回答

1392閲覧

PUN2他画面でキャラクターが暴走する

dedede914

総合スコア63

Photon Cloud

Photon Cloudは、オンラインゲーム開発向けネットワークエンジン。リアルタイムマルチプレイ通信のプラットフォームであるPhotonの一つです。ネットワーク通信によるオンラインゲームを開発・運営するために必要なツールがサーバー環境に構築されています。

Photon Server

Photon Serverは、オンラインゲーム開発向けネットワークエンジン。リアルタイムマルチプレイ通信のプラットフォームであるPhotonの一つで、サーバにインストールして使うサーバアプリケーションです。全てカスタマイズが可能で権限管理もできます。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2021/01/22 05:40

編集2021/01/22 06:39

PUN2を使ってunityでオンラインマルチプレイを作ろうとしています
ほかの人の画面に映っている自分の操作しているキャラが前後に振動したり、十字キーを入力していないのにそのままのスピードで(アニメーションはちゃんとidolが再生されています)リングアウトしてしまいます
自分の画面とほかの人の画面では位置が違うかったりします
操作スクリプトはネットのものをほぼほぼコピペしました
どこがバグの原因なのかわかりませんスクリプトとかもネットを参考にしたので、、
怪しいところがありましたら教えていただきたいです

C#

1 2//オンライン化に必要なコンポーネントを設定 3 public PhotonView myPV; 4 public PhotonTransformView myPTV; 5 6 Animator animator; 7 public float speed = 6.0f; 8 public float jumpSpeed = 8.0f; 9 public float gravity = 20.0f; 10 public float rotateSpeed=6f; //キャラクターの方向転換速度 11 12 private Vector3 moveDirection = Vector3.zero; 13 private CharacterController controller; 14 15 void Start() 16 { 17 animator = GetComponent<Animator>(); 18 controller = GetComponent<CharacterController>(); 19 } 20 21 void Update() 22 { 23 if (!myPV.IsMine) 24 { 25 return; 26 } 27 28 RotationControl(); 29 charamove(); 30 //最終的な移動処理 31 //(これが無いとCharacterControllerに情報が送られないため、動けない) 32 controller.Move(moveDirection * Time.deltaTime); 33 } 34 35 36 void charamove() 37 { 38 39 if (controller.isGrounded) 40 { 41 // We are grounded, so recalculate 42 // move direction directly from axes 43 44 moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0.0f, Input.GetAxis("Vertical")); 45 46 moveDirection = moveDirection * speed; 47 48 if (Input.GetButton("Jump")) 49 { 50 moveDirection.y = jumpSpeed; 51 animator.SetTrigger("jump"); 52 }else{ 53 54 if(moveDirection.magnitude > 0.1f){ 55 animator.SetFloat("movespeed", moveDirection.magnitude); 56 57 } else { 58 animator.SetFloat("movespeed", 0f); 59 } 60 } 61 62 } 63 64 // Apply gravity 65 moveDirection.y = moveDirection.y - (gravity * Time.deltaTime); 66 67 RotationControl(); 68 69 // Move the controller 70 controller.Move(moveDirection * Time.deltaTime); 71 } 72 73 74 void RotationControl() //キャラクターが移動方向を変えるときの処理 75 { 76 Vector3 rotateDirection = moveDirection; 77 rotateDirection.y = 0; 78 //それなりに移動方向が変化する場合のみ移動方向を変える 79 if (rotateDirection.sqrMagnitude > 0.01) 80 { 81 //緩やかに移動方向を変える 82 float step = rotateSpeed * Time.deltaTime; 83 Vector3 newDir = Vector3.Slerp(transform.forward, rotateDirection, step); 84 transform.rotation = Quaternion.LookRotation(newDir); 85 } 86 }

キャラクターのinspectorです
イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問