rtan 파일을 더블클릭하고, 실행되지 않았을 떄 다시한번 클릭하면 실행이 되어야 하는데 나는 경로가 잘못된건지 아무리 클릭해도 실행되지 않아서... 그냥 Visual Studio에서 경로를 찾아서 실행했다. 나중에 해결방법을 안다면 추가로 작성할 예정이다 ( = 아직 모른다 )
요놈!
이렇게 예쁜 스크립트가 나타난다.
요 위에 이미지의 Start()와 Update()의 함수 위의 주석을 잘 살펴보면
* Start()는 실제로 첫 프로그램이 실행되기 전에 실행되고
* Update()는 매 프레임마다 실행된다는걸 알 수 있다
함수 첫문자 대문자인게 너무 고통스럽다
d. 캐릭터 움직임 코딩하기
캐릭터가 "움직일 때" "좌 우"로 이동해야 하는것이기 때문에 Y값은 건드릴 필요가 없다
1) 캐릭터 오른쪽으로 이동하기
a) Code
public class rtan : MonoBehaviour
{
float direction = 0.05f;
...
void Update()
{
transform.position += new Vector3(direction, 0, 0);
// 트랜스폼 안의 포지션을, Vector3 방향으로 계속 더해주세요
// float 란? 소수점을 나타내는 자료형. 즉, 소수를 쓰고 싶으면 뒤에 f 를 붙여줘야 함
// 변수를 사용해서 넣어줌
}
}
Update 부분을 위 코드로 수정하고, 저장
b) 애니메이션 부여
대부분 유니티에선 드래그 앤 드랍으로 애니메이션을 부여해 줄 수 있음
아래 (1)와 같이 드래그 후 (2)에 Script 속성이 생긴것을 볼 수 있음
요 상태에서 실행을 누르면르탄이가 어디로 떠난다
2) 캐릭터 벽에 닿으면 다른 방향을 보게하기
a) Debug.Log 로 위치 보기
Update()에 아래 코드 추가
console.log와 동일한 기능을 한다
Debug.Log(transform.position.x);
b) Unity에서 Console 확인하기
실행을 누르면 왼쪽 아래 v 체크된 곳에 알림이 뜨는데, 알림을 누르면 Console을 확인할 수 있음
c) Update() 수정하기
왼쪽 벽에 닿으면 오른쪽 방향, 오른쪽 벽에 닿으면 왼쪽 방향으로 가게 한다
void Update()
{
if (transform.position.x > 2.8f){
direction = -0.05f;
}
if(transform.position.x < -2.8f){
direction = +0.05f;
}
transform.position += new Vector3(direction, 0, 0);
}
버벅거리는 것 처럼 보이는데 gif 파일 저장을 누를떄 프로그램 오류로;; 그런것이고 코드 이상은 아니다
문워크 나보다 잘한당
3) 캐릭터 좌우 반전하기
transform.localScale = new Vector3(-1, 1, 1);
요 코드를 사용해서
float direction = 0.05f;
float toward = 1.0f; //변수를 추가해서 정리
void Start()
{
}
void Update()
{
if (transform.position.x > 2.8f){
direction = -0.05f;
toward = -1.0f;
}
if (transform.position.x < -2.8f){
direction = 0.05f;
toward = 1.0f;
}
transform.localScale = new Vector3(toward, 1, 1);
transform.position += new Vector3(direction, 0, 0);
}
이렇게 정리했다.
3) 마우스 클릭시 방향 바꾸기
아래 코드만 사용하면 마우스 클릭 이벤트를 사용 가능하다.
if (Input.GetMouseButtonDown(0))
{
toward *= -1;
direction *= -1;
}