Skip to content

Commit

Permalink
Fix PC based mouse look for ship spawn
Browse files Browse the repository at this point in the history
  • Loading branch information
plaidpants committed Jan 28, 2022
1 parent b4e1842 commit 9f2ff22
Show file tree
Hide file tree
Showing 6 changed files with 54 additions and 2 deletions.
52 changes: 51 additions & 1 deletion Assets/CameraFollowRocket.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,21 +9,71 @@ public class CameraFollowRocket : MonoBehaviour
public Transform player;
public float rotSpeed;

#if !UNITY_ANDROID || UNITY_EDITOR
public float sensitivityX = 15F;
public float sensitivityY = 15F;
public float sensitivity = 0.1f;

public float minimumX = -360F;
public float maximumX = 360F;

public float minimumY = -60F;
public float maximumY = 60F;

Quaternion originalRotation;

float rotationX = 0;
float rotationY = 0;
#endif

private void Start()
{
// start the camera in a random direction
Quaternion rot = Quaternion.LookRotation(Random.onUnitSphere);
transform.rotation = rot;

#if !UNITY_ANDROID || UNITY_EDITOR
// Make the rigid body not change rotation
originalRotation = transform.localRotation;
#endif
}

#if !UNITY_ANDROID || UNITY_EDITOR
public static float ClampAngle(float angle, float min, float max)
{
if (angle < -360F)
angle += 360F;
if (angle > 360F)
angle -= 360F;
return Mathf.Clamp(angle, min, max);
}
#endif

// this camera repositioning will get overridden with any VR camera update if it is active and tracking
void LateUpdate()
{
if (player.transform)

if (player.transform && player.gameObject.activeSelf)
{
Quaternion rot = Quaternion.LookRotation(player.position);

transform.rotation = Quaternion.Slerp(this.transform.rotation, rot, Time.deltaTime * rotSpeed * 0.1f);
}
else
{
#if !UNITY_ANDROID || UNITY_EDITOR
// Read the mouse input axis
rotationX = rotationX + Input.GetAxis("Mouse X") * sensitivityX;
rotationY += Input.GetAxis("Mouse Y") * sensitivityY;

rotationX = ClampAngle(rotationX, minimumX, maximumX);
rotationY = ClampAngle(rotationY, minimumY, maximumY);

Quaternion xQuaternion = Quaternion.AngleAxis(rotationX, Vector3.up);
Quaternion yQuaternion = Quaternion.AngleAxis(rotationY, -Vector3.right);

transform.localRotation = originalRotation * xQuaternion * yQuaternion;
#endif
}
}
}
Binary file modified Assets/RockField1.prefab
Binary file not shown.
Binary file modified Assets/RockField2.prefab
Binary file not shown.
4 changes: 3 additions & 1 deletion Assets/RocketSphere.cs
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,9 @@ void CmdMySetActive(bool active, Quaternion rotation)
[Command]
void CmdSpawnShip()
{
RpcSpawnShip();
rpcSpawnShipDelay();

//RpcSpawnShip();
}

[ClientRpc]
Expand Down
Binary file modified ProjectSettings/GraphicsSettings.asset
Binary file not shown.
Binary file modified ProjectSettings/ProjectSettings.asset
Binary file not shown.

0 comments on commit 9f2ff22

Please sign in to comment.