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