전날에 발표 대본은 써놨지만 발표에 대한 경험이 거의 없고 열심히 팀원들과 준비한 게임을 내 발표로 망칠까봐 걱정이 많이 됐다. 하지만 이때 아니면 언제 발표를 연습해보겠어! 라는 생각과 팀원분들의 격려로 ppt자료와 대본을 한 번 더 체크했다.
미니프로젝트이지만 처음으로 팀원들과 협동하며 하나의 게임을 완성한 경험은 아쉬우면서도 뿌듯했다. 시간이 좀 더 있었다면 구현하면 좋았을텐데 싶은 부분과 발표 때 긴장해서 말을 제대로 못한게 아쉽기도 했지만 새로운 경험이라 재밌었다.
알고리즘 문제 풀이
C# 코딩테스트 알고리즘 코드타카 문제를 풀던 중, 두 수의 나눗셈 부분에서 Convert 함수와 (double), (int) 등의 형변환 방식의 차이점이 무엇일까 궁금증이 생겼다.Convert 함수는 String처럼 숫자형이 아닌 자료형도 변환시켜줄 수 있지만 (double), (int) 등의 형변환은 숫자형끼리만 변환시킬 수 있었다.
나의 첫 코드는 이랬는데
public class Solution {
public int solution(int num1, int num2) {
double answer = Convert.ToDouble(num1 / num2 * 1000);
return Convert.ToInt32(answer);
}
}
int형의 num1과 num2가 계산되어 정수로 반환되기 때문에 소수점을 반환할 수 없었다.
고로 이렇게 num1을 double형으로 변환시켜서 int형과 계산해도 더 상위의 형식인 double형으로 나오도록 했다.
public class Solution {
public int solution(int num1, int num2) {
double answer = Convert.ToDouble(num1) / num2 * 1000;
return Convert.ToInt32(answer);
}
}
public class Solution {
public int solution(int num1, int num2) {
double answer = (double)num1 / num2 * 1000;
return (int)answer;
}
}
2. onclick.AddListner()을 통해 버튼에 이벤트 할당하기3. 게임 BGM 작업
캐릭터 DOTween으로 코드 만들기
public GameObject memberCharacter;
void Start()
{
Sequence moveSequence = DOTween.Sequence();
moveSequence.Append(memberCharacter.transform.DOMoveY(1, 0.3f)); // Y 좌표를 1로 이동
moveSequence.Append(memberCharacter.transform.DOMoveY(0, 0.5f)); // Y 좌표를 0으로 이동
moveSequence.SetLoops(-1, LoopType.Restart); // 루프 설정
}
미니프로젝트인만큼 기간이 짧기도 하고이 방법으로 해내기보다는 이런 방법도 있으니 시간이 되면 시도해보자! 라는 제의를 받아 시작했지만 점프 뛰게 하는 것까진 구현했는데 캐릭터 6개가 순서대로 파도타기를 하며 점프하는 것을 반복하는 것은 구현하지 못했다.
다시 하던대로 유니티에서 애니메이션을 건들여서 구현하였다.
각각 캐릭터들의 애니메이션을 부여한 뒤, Cycle Offset에 값을 조금씩 차이나게 설정하여 차례대로 뛰도록 했다.
public Button exitBtn;
private void Awake()
{
restartBtn.onClick.AddListener(Restart);
exitBtn.onClick.AddListener(Exit);
}
public void Restart()
{
SceneManager.LoadScene("Game");
}
public void Exit()
{
SceneManager.LoadScene("Start");
}
Start보다 먼저 시작되는 Awake 함수로 Restart 버튼과 Exit 버튼이 호출되도록 한다. 버튼들이 호출되면 SceneManager.LoadScene()을 통해 각각의 Scene을 불러오도록 한다.
유니티로 돌아가서 Canvas에 들어가있는 Script에서 각각 게임오브젝트 버튼을 넣어준다.
오늘 공부를 하며 깨달은 것은 '내가 무엇을 정확히 모르는가'였다.
매서드 등의 역할과 이론은 이해하고 있지만 코드 자체를 어떻게 구성해야하는지를 모르는 상태였다. 코드를 차근차근 찾아보여 해석하는 것은 가능하지만 어떤 것을 개발하라고 나에게 주어지면 막막하다는 생각이 든 이유도 그것이었다. 이번 프로젝트를 통해 코드를 자주 써보고 코딩에 익숙해지는 시간이 되면 좋겠다.