Ruya Games

1 - Transform.Translate & Dotween으로 기본 움직임 설정 본문

게임 개발 일지/블록 아케이드 게임

1 - Transform.Translate & Dotween으로 기본 움직임 설정

SadEvil 2023. 11. 30. 15:21

첫번째로 구현할 내용은

1. 일반 블록이 아래에서 위로 올라옴.

2. playable 블록도 아래에서 위로 올라가되, 버튼 클릭에 따라 좌우 이동 가능

입니다.

 


블록 오브젝트들을 제어할때 사용하는 상수들은 GeneralBlockSetting 클래스에 static으로 선언했습니다.

public static class GeneralBlockSetting {
	public const float TravelDuration = 10f;
	public const float BlockSpeed = 0.001f;
	public const float PlayerBlockMoveSpeedX = 0.5f;

	public const int BlockBasePositionX = -375;
	public const int BlockSize = 250;
}

 


블록이 아래에서 위로 올라오는 기능은 간단히 transform.Translate로 구현했습니다. 이후에 블록이 삭제되거나, 색상 정보를 저장하거나 등의 내용들도 이 클래스에 추가할 예정입니다.

public class Block : MonoBehaviour {
	private void Update() {
	    transform.Translate(0,GeneralBlockSetting.BlockSpeed,0);
  }
}

 


플레이어블 블록은 일단 기본 상태인 위로 계속 올라가기 + 좌우 이동 기능이 구현되어야 하는데, 올라가는건 일반 블록과 똑같이 구현하고, 좌우 이동은 DoTween으로 구현했습니다.

public class PlayableBlockManager : MonoBehaviour {
	public void MovePosition(int index) {
		var destinationX = GeneralBlockSetting.BlockBasePositionX +GeneralBlockSetting.BlockSize * index;

		transform.DOLocalMoveX(destinationX, GeneralBlockSetting.PlayerBlockMoveSpeedX).SetEase(Ease.Linear);
	}

	private void Update() {
		transform.Translate(0,GeneralBlockSetting.BlockSpeed,0);
	}

플레이어블 블록에는 앞으로 밑에 블록이 있는지 확인, 아래 블록의 색상 확인, 아래 블록이 없다면 아래로 하강 기능 등이 추가되어야 합니다.

 


이후 에디터에서 Button 오브젝트를 4개 추가한 뒤, OnClick() 이벤트 리스너로 MovePosition()함수를 추가하고, 각 버튼은 왼쪽부터 index값을 0,1,2,3으로 입력해줍니다.

 

코드를 적용한 결과는 다음과 같습니다.