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);
 | |
|         }
 | |
|     }
 | |
| }
 |