금일 한 것
[스파르타코딩클럽] 게임개발 종합반 - 2주차->풍선을 지켜라
[스파르타코딩클럽] 게임개발 종합반 - 3주차->고양이 밥주기 게임의 3목차(밥 쏘기)까지 제작
금일 배운 것
이미지를 활용하지 않고 오브젝트만 활용해 애니메이션 만드는 방법(시간에 따라 색 변화)
Animations폴더 안에 애니메이션을 만들고 애니메이션을 적용할 오브젝트를 드래그
이후 더블 클릭을 하여
에서 녹화버튼을 누르고 원하는 시간대에 변화를 주면 끝
마우스의 움직임에 따라 오브젝트 위치 변화
void Update()
{
Vector3 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
transform.position = new Vector3(mousePos.x, mousePos.y, 0);
}
카메라 메인 씬의 마우스 포인트 값을 vector3형식의 mousePos에 받아 포지션 변화!
3.데이터 보관하는 방법
(1) 데이터 저장하기
PlayerPrefs.SetFloat("bestScore", 어떤숫자값);
PlayerPrefs.SetString("bestScore", 어떤문자열);
(2)데이터 불러오기
어떤숫자값 = PlayerPrefs.getFloat("bestScore");
어떤문자열 = PlayerPrefs.getString("bestScore");
(3)데이터 있는지 확인하기
PlayerPrefs.HasKey("bestScore") //bool값
(4)데이터 모두 지우기
PlayerPrefs.DeleteAll();
4.애니메이션 만들어 놓은 오브젝트에 애니메이션 적용
애니메이션을 만들고 적용할 오브젝트에 드래그(*balloon_die를 GameObject인 balloon에 드래그) 후 변화를 기록하여 애니메이션 적용 ->
애니메이션 컨트롤러를 이용해 애니메이션 끼리 연결(마우스 오른쪽 클릭후 make transition으로 연결) ->
파라미터(Parameters)에 원하는 형식의 만들어 어떤 조건을 충족시 수행하도록 설정
예시
transition을 클릭하고 아래와 같이 세팅하기
→ has exit time 을 체크 해제해야 : 즉시 전환됩니다!
예시에서는 풍선오브젝트가 네모상자에 충돌시 "isDie"가 True로 전환
isDie의 값을 변경하기 위해서는 gameManager에서 "public Animator 이름;" 형태로 선언하여 인식시켜줘야됨
(추가 문제 여기서는 충돌 = 게임오버이기에 충돌시 Time.timeScale값을 0으로 하였기에 애니메이션 실행이 안된다 이를 해결하기 위해서는
public void gameOver()
{
anim.SetBool("isDie", true); // 충돌 애니메이션 실행
isRunning = false;
Invoke("timeStop", 0.5f); // <- 0.5초 이후에 timeStio함수를 호출하여 정지시킴
thisScoreTxt.text = alive.ToString("N2");
endPanel.SetActive(true);
if (PlayerPrefs.HasKey("bestScore") == false)
{
PlayerPrefs.SetFloat("bestScore", alive);
}
else
{
if (PlayerPrefs.GetFloat("bestScore") < alive)
{
PlayerPrefs.SetFloat("bestScore", alive);
}
}
bestScoreTxt.text = PlayerPrefs.GetFloat("bestScore").ToString("N2");
}
void timeStop() //실질적 정지
{
Time.timeScale = 0.0f;
}
으로 제작 해야 된다.)
1.scene을 추가하여 StartScene, MainScene등등 여러개로 분리할 수 있음
(1)Camera에서 szie를 변경해 더 큰 화면에서 제작 가능
(2)Instantiate(food, new Vector3(x,y,0), Quaternion.identity);
와 같은 형태로 제작 가능 (오브젝트 이름, 벡터 방향 , 회전 방향) Quaternion.identity
는 회전 방향이 없다는 뜻!
느낀점
오브젝트를 생성이후 제거를 안해주면 게임이 느려지기에 꼭 삭제 해줘야됨(메모리 과부하)
이미지를 활용하면 게임 퀄리티가 많이 달라보임 Photoshop을 활용해야 될 것 같다...