학습 주제
유니티-에셋-애니메이션 스크립트를 연동하여 캐릭터 움직이게 만들기
학습 목표는 무엇입니까?
유니티 엔진 에셋으로 오브젝트 지정하고 움직이게 만드는 것 그 자체
학습 내용
학습 내용을 작성해주세요
- Unity 에셋과 컴포넌트
- Unity Engine에서 오브젝트가 움직이게 하기 위해서는 에셋을 만들고, 그 에셋을 움직이게 만들 컴포넌트(Component)가 필요하다
- 컴포넌트는 에셋에 포함된 transfer, sprite render, animation, script 등이 있음
- Unity에서 모든 기기가 똑같은 프레임으로 작동할 수 있게 하기
- Unity에서 작성된 스크립트를 실행하면, 기기 성능에 따라 게임의 속도가 다를 수 있음
- 속도를 맞추기 위해 게임 내 실행할 프레임을 정의하는 속성이 Application.targetFrameRate임
- 이 속성 값을 60으로 맞춰서 항상 60프레임으로 게임을 작동하게 만들 수 있음
void Start() { Application.targetFrameRate = 60; }
- Unity에서 컴포넌트를 가져올 수 있는 스크립트
- C# 스크립트로 에셋 내부의 여러 값을 가져와 제어할 수 있음
- Sprite renderer를 예시로 한다면 이를 전체 스크립트 함수에서 선언해주어야 함
- 그리고, 선언한 변수를 가져다 사용하여 제어 가능
using System.Collections; using System.Collections.Generic; using Unity.VisualScripting; using UnityEngine; public class Rtan : MonoBehaviour { float direction = 0.1f; **new SpriteRenderer renderer;** // Start is called before the first frame update void Start() { Application.targetFrameRate = 60; renderer = GetComponent<SpriteRenderer>(); Debug.Log("check"); } // Update is called once per frame void Update() { if (Input.GetMouseButtonDown(0)) { direction *= -1; **renderer.flipX = !renderer.flipX;** } // 조건 : 벽에 부딪히면 반대방향을 보게 만들어라! // +라면 오른쪽으로 -라면 왼쪽으로 돌기 때문에 -1을 곱해주기만 하면 됨 if (transform.position.x > 2.6 || transform.position.x < -2.6) { direction *= -1; **renderer.flipX = !renderer.flipX;** } // transform.position += new Vector3(1f, 0, 0); 을 아래 코드로 만들 수 있음 transform.position += Vector3.right * direction; } }
'What I Learned > 소프트웨어 개발' 카테고리의 다른 글
[iOS App] Xcode 튜토리얼 (0) | 2024.07.02 |
---|---|
[AI-RAG] 환경 세팅과 Chat Completion 시도 (0) | 2024.07.02 |
[WIL] Unity - 빗방울 게임 - 랜덤으로 떨어지는 빗방울 만들기 (0) | 2024.06.19 |
[WIL] Unity - 빗방울 게임 - 오브젝트 충돌 구현 (0) | 2024.06.18 |
[WID] Zapier - 슬랙에서 구글시트로 메시지 적재하기 (0) | 2024.06.18 |