発生している問題・エラーメッセージ
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のみ入っている
となっています。
このような状況になったのは初めてで全くわからないので、どのようなことが原因として考えられるかを教えていただけるととてもありがたいです。
