74 lines
2.0 KiB
C#
74 lines
2.0 KiB
C#
// 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);
|
|
}
|
|
}
|
|
}
|