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

74 lines
2.0 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 RunnerPlayer : MonoBehaviour
{
public enum Side { Left, Right }
Vector3 initialPosition;
Vector3 newPos;
Side side;
#if USE_INPUT_SYSTEM && ENABLE_INPUT_SYSTEM
Key moveLeftKey = Key.A;
Key moveRightKey = Key.D;
#else
KeyCode moveLeftKey = KeyCode.A;
KeyCode moveRightKey = KeyCode.D;
#endif
Animation animationComp;
public AnimationClip moveLeftAnimation;
public AnimationClip moveRightAnimation;
float translateOffset = 3.5f;
void Start()
{
initialPosition = transform.position;
side = Side.Left;
newPos = transform.localPosition + new Vector3(0, 0, translateOffset);
animationComp = GetComponent<Animation>();
}
void Update()
{
if (ExampleInput.GetKeyDown(moveLeftKey))
{
if (side == Side.Right)
{
newPos = initialPosition + new Vector3(0, 0, translateOffset);
side = Side.Left;
animationComp.Play(moveLeftAnimation.name);
}
}
else if (ExampleInput.GetKeyDown(moveRightKey))
{
if (side == Side.Left)
{
newPos = initialPosition + new Vector3(0, 0, -translateOffset);
side = Side.Right;
animationComp.Play(moveRightAnimation.name);
}
}
transform.localPosition = Vector3.Lerp(transform.localPosition, newPos, Time.deltaTime * 10);
}
}
}