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

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

新規登録して質問してみよう
ただいま回答率
85.48%
C#

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

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

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

Q&A

1回答

5504閲覧

Unity ビルド後、PCによって挙動がおかしくなるものとならないものがある

ScienceKitten

総合スコア20

C#

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

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

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

0グッド

0クリップ

投稿2019/08/27 08:44

編集2019/08/27 14:49

発生している問題・エラーメッセージ

UnityでPC用にゲームをビルドしたのですが、あるPCでは正常に動作するのに、また別のPCでは挙動がおかしくなっています。

具体的にはUnity3Dでアクションゲームを作り、十字キーの入力を受け取ってキャラクターを操作するようにしたのですが、あるPCではキャラクターが動いていない、という状況です(また他のPCでは全く問題なく動いています)。ただアニメーションは動いているので、入力に使っているInput.GetAxis自体が全く機能していないわけではないようです。

該当のソースコード

キャラクターの移動に使っている部分です。

public PhotonView photonView; public PhotonTransformView photonTransformView; public Animator animator; public CharacterController chCon; public float speed; public float jumpspeed; public float rotatespeed; public float gravity; public int moveLock; Vector3 targetDirection; Vector3 moveDirection; void Update() { if (!photonView.isMine) { return; } if (movelock <= 0) { MoveControl(); RotationControl(); chCon.Move(moveDirection * Time.deltaTime); } Vector3 velocity = chCon.velocity; photonTransformView.SetSynchronizedValues(velocity, 0); } void MoveControl() { float v = Input.GetAxisRaw("Vertical"); float h = Input.GetAxisRaw("Horizontal"); Vector3 forword = Vector3.Scale(Camera.main.transform.forward, new Vector3(1, 0, 1)); Vector3 right = Camera.main.transform.right; targetDirection = h * right + v * forword; if (chCon.isGrounded) { moveDirection = targetDirection * speed; if (Input.GetButtonDown("Jump")) { moveDirection.y = jumpspeed; } } else { float tempy = moveDirection.y; moveDirection.y = tempy - gravity * Time.deltaTime; } if(v>.1 || v<-.1 || h>.1 || h < -.1) { animator.SetFloat("Speed", 1f); } else { animator.SetFloat("Speed", 0f); } } void RotationControl() { Vector3 rotateDirection = moveDirection; rotateDirection.y = 0; if(rotateDirection.sqrMagnitude > 0.01) { float step = rotatespeed * Time.deltaTime; Vector3 newDir = Vector3.Slerp(transform.forward, rotateDirection, step); transform.rotation = Quaternion.LookRotation(newDir); } }

補足情報(FW/ツールのバージョンなど)

環境は、
・どちらのPCもwindows10
・挙動がおかしくなったPCの方がスペックは良いので、スペック不足で動いていないということはなさそう
・上手くいったPCにはUnityEditer2019.3.0a3が入っている(ゲーム自体もこれで作っている)
・上手くいかなかったPCはUnity2018のみ入っている
となっています。

このような状況になったのは初めてで全くわからないので、どのようなことが原因として考えられるかを教えていただけるととてもありがたいです。

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

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

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

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

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

fiveHundred

2019/08/27 11:56

ソースコードなど、もう少し情報を記載したほうがよろしいかと思います。 例えば、Input.GetAxis()をFixedUpdate()内で呼び出すと意図しない挙動になることがある、といったことなどがありますが、情報が無いとそれも判断できません。
ScienceKitten

2019/08/27 14:54

確かにもっと情報が必要でしたね…失礼しました。キャラクターの移動にかかわっている部分のコードを追記しました。
izmktr

2019/08/28 01:27

動いていないのにInput.GetAxisは機能しているし、アニメは動いているってのがいまいちわからないです 画面にGetAxisの返り値を表示するようにしてみてはどうでしょうか?
fiveHundred

2019/08/28 02:03

現状の質問内容では、私を含め「(Photonの通信とは関係なく)1台目のみで実行すると正しく動作し、2台目のみで実行すると正しく動作しない」と解釈されていますが、これは正しいでしょうか? 「1台目と2台目をPhotonで接続すると、片方では動くがもう片方は動かない」ということではないですよね?
ScienceKitten

2019/08/28 04:52 編集

はい、皆さんの解釈で正しいです。photonで2台のpcを接続せずに1台ずつで実行しています。
guest

回答1

0

上手くいったPCにはUnityEditer2019.3.0a3
上手くいかなかったPCはUnity2018のみ

単純に非互換では無いですか?
Unity のリリースルールは良く知りませんが、a3 と言うのは Alpha 3 という事でしょうか? 一般的には、α版はリスクがあると言いますが、この問題はありませんか?

違っていたら、済みませんが、参考までに。

投稿2019/08/27 15:10

pepperleaf

総合スコア6383

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

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

simapiko

2019/08/28 00:47

横から失礼します。 2019.3.0a3のaというのはα版という認識で問題ないかと思います。 ビルド後であれば、Unityのバージョンは関係ないと思いますので(というかUnity入っていなくても動いた気がする)、2018のLTS版か2019のα・β版以外もので一度ビルドしなおしてみるのがいいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問