강의 1-9까지 진행
1-3 애니메이션 만들기
1.애니메이션을 넣을 폴더 생성
2.Create->Animation 으로 애니메이션 파일 생성(이름은 Rtanidle로 명명)
3.Inspecter 창의 Loop time 체크 (계속해서 반복적으로 수행)
4.Hirearchy창의 Rtan 오브젝트를 선택하고 만들어둔 애니메이션 파일을 드래그 앤 드롭해서
inspector 창에 넣음
5.Project의 Rtanidle을 더블 클릭하여 animation창을 오픈
(window->animation->animation으로도 가능)
6.Rtan 오브젝트 클릭
7.삽화 이미지인 르탄이1을 눈금이 0에 가 있는 곳에 삽입
8.눈금을 10으로 옮기고 ( animation창 왼쪽 상단의 빈칸에 기입하는것도 가능)
눈금이 있는곳에 르탄이2를 삽입 또한 20으로 옮기고 다시 르탄이 1을 삽입
1-4 캐릭터 움직이기
본격적으로 코딩을 활용하기 시작함
1.Project의 Assets 폴더에 c#파일 생성
Creat->C# script (Rtan으로 명명)
2.Script 파일을 모아둘 Scripts 폴더 생성 후 Rtan 파일을 집어넣음
3.Hirearchy의 Rtan 오브젝트를 클릭 후 inspector 창에 C#스크립트 파일(Rtan)을 드래그 앤 드롭
4.Rtan 스크립트 파일을 더블클릭하여 코딩
스크립트는 class라는 단위(스크립트 하나당 클래스 하나)
Debug.log(""); 유니티 콘솔창에 텍스트 출력
5. Scene 창의 도구에서 2번째 도구로 Rtan 오브젝트가 움직일 x축을 측정 좌우2.4 -2.4
6.Rtan 오브젝트를 움직이기 위해서 x축의 값을 변경하는 코딩
void 뒤의
starts는 딱 한번만 수행
update는 컴퓨터의 프레임을 기준으로 반복해서 출력
transform.position += new Vector3(1f,0,0);
오브젝트의 포지션값을 변경
포지션 값을 x,y,z축을 하나하나 변경할 수 없기에 new Vector3를 사용
매번 x y z축을 적기 힘들수 있으므로
transform.position += Vector3.right 처럼 사용하기도 한다. (이경우는 x축이 1씩 더해짐 left는 -1)
7.Rtan 오브젝트가 움직이는 속도가 컴퓨터의 성능마다 다르기에 프레임을 조절
함수 Void start()안에
Application.targetFrameRate=60;
작업이 수행중에 1초에 60번만 수행되도록 조절
8. 오브젝트가 움직이는 속도를 느리게 연산
transform.position += Vector3.right * 0.05f;
0.05배 만큼 느려짐
9.Rtan 오브젝트가 벽에 닿을 시 다시 되돌아가도록 코드 변경
public clss Rtan:MonoBehaviour
{
float direction=0.05f
void start()
{
Application.targetFrameRate = 60;
}
void Update()
{
transform.position += Vector3.right * direction
}
.
}
float direction = 0.05f; 라는 변수를 선언
10. if문을 사용하여 조건을 입력 Rtan이 화면의 벽에 닿는다면 이동방향을 변경
if(transform.position.x>2.6f) (Rtan 오브젝트의 x값이 2.6보다 커진다면)
{
direction=-0.05f;
}
(direction의 값을 -0.05f로 변경 )
if(transform.position.x<-2.6f) (Rtan 오브젝트의 값이 -2.6보다 작아진다면)
{
direction=0.05f
}
(direction의 값을 0.05f로 변경)
11. Rtan이 이동방향을 바꿀때 보는 방향도 바꾸도록 코딩
inspector -> sprite Renderer -> Flip 기능을 사용하여 오브젝트의 좌우 상하 반전가능
Unity의 기능을 C#스크립트로 불러오기 위해
SpriteRenderer renderer; renderer라는 변수를 선언
Void Start()안에
renderer = GetComponent<SpriteRenderer>(); Unity의 컴포넌트의 기능을 가져옴
if(transform.position.x>2.6f)
{
renderer.flipX = false; (컴포넌트의 Flip 기능을 키고 끌 수있음 true 킴 false 끔)
direction=-0.05f
}
컴포넌트의 Flip의 좌우반전 기능을 사용
12.플레이어가 조작하는 타이밍에 오브젝트의 좌우전환
if ( input.GetMouseButtonDown(0)) 마우스를 클릭했을때의 조건 (0은 왼쪽버튼 1은 오른쪽 버튼 등등)
{
direction *=-1; 변수 direction에 음수를 곱함으로서 x축의 이동방향을 바꿀 수 있음
renderer.flipX= !renderer.flipX; 현재 flip 이 true 면 false false 면 true로 전환
}
양이 많으므로 1-5는 내일 복습 후 다시 정리
'TIL' 카테고리의 다른 글
2024 08 28 TIL (7) | 2024.08.28 |
---|---|
2024 08 27 TIL (0) | 2024.08.27 |
2024-08-26 TIL (0) | 2024.08.26 |
2024 08 24 (0) | 2024.08.24 |
2024 08 22 TIL (0) | 2024.08.22 |