OvertakingLegend/Assets/Amazing Assets/Curved World/Example Scenes/Files/Scripts/CameraPan.cs

64 lines
1.6 KiB
C#
Raw Normal View History

2025-03-24 03:08:22 +00:00
// Curved World <http://u3d.as/1W8h>
// Copyright (c) Amazing Assets <https://amazingassets.world>
using UnityEngine;
#if USE_INPUT_SYSTEM && ENABLE_INPUT_SYSTEM
using UnityEngine.InputSystem;
#endif
namespace AmazingAssets.CurvedWorld.Examples
{
public class CameraPan : MonoBehaviour
{
public float moveSpeed = 1;
#if USE_INPUT_SYSTEM && ENABLE_INPUT_SYSTEM
Key moveLeft = Key.A;
Key moveRight = Key.D;
Key moveUp = Key.W;
Key moveDown = Key.S;
#else
KeyCode moveLeft = KeyCode.A;
KeyCode moveRight = KeyCode.D;
KeyCode moveUp = KeyCode.W;
KeyCode moveDown = KeyCode.S;
#endif
void Update()
{
bool mLeft = ExampleInput.GetKey(moveLeft);
bool mRight = ExampleInput.GetKey(moveRight);
bool mUp = ExampleInput.GetKey(moveUp);
bool mDown = ExampleInput.GetKey(moveDown);
float h = 0;
if ((mLeft && mRight) || (!mLeft && !mRight))
h = 0;
else if (mLeft)
h = -1;
else if (mRight)
h = 1;
float v = 0;
if ((mUp && mDown) || (!mUp && !mDown))
v = 0;
else if (mUp)
v = 1;
else if (mDown)
v = -1;
Vector3 newPos = transform.position + new Vector3(h, 0, v) * moveSpeed * Time.deltaTime;
newPos.x = Mathf.Clamp(newPos.x, -35, 35f);
newPos.z = Mathf.Clamp(newPos.z, -35, 35f);
transform.position = newPos;
}
}
}