유니티 연습) 애니메이션과 플레이어 움직임
2017. 12. 7. 20:02ㆍ프로그래밍(이전)/UNITY2D
연속된 이미지를 에셋으로 넣어 애니메이션을 만들고,
애니메이터에서 그 이리저리 조건에 맞게 흔들었더니 잘 움직인다.
기본 상태는 TinaStayAni 눈을 깜빡이는 애니메이션이다.
여기서 좌우로 움직이는 상태가 되면(isMoving 함수가 true가 되면) TinaMoveAni를 실행한다
이 애니메이션은 발을 움직이는 애니메이션이다.
점프키가 입력되면 doJumping트리거를 통하여 점프를 하며 손을 내리고 올리는 TinaJumpAni를 실행한다.
좌우 움직임은 단순히 Vector2, 3을 조합해 만들었다. 점프는 Impulse를 주어 단순한 위치 변경이 아닌 힘을 준 상태를 만들어줬다.
코드:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | using System.Collections; using System.Collections.Generic; using UnityEngine; public class playerMove : MonoBehaviour { public float movePower = 1f; public float jumpPower = 1f; Rigidbody2D rigidbody2; Vector3 movement; SpriteRenderer renderer; Animator animator; bool isJumping; // Use this for initialization void Start () { rigidbody2 = gameObject.GetComponent<Rigidbody2D> (); renderer = gameObject.GetComponentInChildren<SpriteRenderer> (); animator = gameObject.GetComponentInChildren<Animator> (); } // Update is called once per frame void Update () { if(Input.GetButtonDown ("Jump")) { isJumping = true; animator.SetTrigger ("doJumping"); } if(Input.GetAxisRaw ("Horizontal") == 0) { animator.SetBool("isMoving",false); } else { animator.SetBool("isMoving",true); } } void FixedUpdate() { Move(); Jump(); } //사용자함수 void Move() { Vector3 moveVelocity = Vector3.zero; if(Input.GetAxisRaw ("Horizontal") < 0) { moveVelocity = Vector3.left; renderer.flipX = true; } else if(Input.GetAxisRaw ("Horizontal") > 0) { moveVelocity = Vector3.right; renderer.flipX = false; } transform.position += moveVelocity * movePower * Time.deltaTime; } void Jump () { if(!isJumping) return; rigidbody2.velocity = Vector2.zero; Vector2 jumpVelocity = new Vector2 (0, jumpPower); rigidbody2.AddForce (jumpVelocity, ForceMode2D.Impulse); isJumping = false; } } | cs |
'프로그래밍(이전) > UNITY2D' 카테고리의 다른 글
유니티 연습) 리깅을 한번 해보았습니다. (0) | 2017.12.12 |
---|