본문 바로가기

분류 전체보기

(79)
짝 맞추기 카드 만들기, 카드 섞기, 리소스를 사용한 스프라이트 설정 오늘의 구현 짝 맞추기 카드 만들기 카드 섞기 스프라이트 설정하기. 1. 짝 맞추기 카드 만들기 보드판의 크기 만큼의 카드를 만들고, 0,0(정중앙) 을 기준으로 카드를 만들 것 입니다. 0,0 을 기준으로 카드를 배열할 것이기 때문에 가장 첫번째 카드는 정중앙으로부터 -보드판/2 만큼 떨어져 있습니다. 만들어진 게임오브젝트의 중심점이 보드의 왼쪽 아래 모서리의 위치해 있기 때문에 만들어진 게임오브젝트 또한 중심점을 정중앙으로 만들기 위해 0.5를 더해줍니다. 카드들을 보기 쉽게 서로 간격을 두고 만들기 위해 , outLinePercent(0~1 사이)라는 변수를 받고 게임 오브젝트의 크기를 1로 고정 한 다음 1에서 퍼센트를 뺀값을 곱해주고, 게임 오브젝트의 크기를 곱해줍니다. public void S..
3D 플레이어 이동 구현(마우스로 방향전환, 키보드로 방향전환) 오늘의 구현 캐릭터의 forward는 그대로 두고 캐릭터만 회전시켜 방향 전환 시켜주기. 1. 마우스 포인터로 캐릭터의 방향을 정해주기 2. 단순 키보드로 캐릭터의 방향을 지정. 1. 마우스 포인터로 캐릭터의 방향을 정해주기 마우스 포인터로 캐릭터의 방향을 정해줄 것이기 때문에 마우스 포인터의 위치값을 가져옵니다. 마우스의 포지션은 기본으로 스크린 좌표를 가져오며 마우스 포지션의 z값은 무시 되기 때문에 마우스의 z좌표를 설정해 줘야 합니다. 마우스의 z좌표는 메인카메라의 y - 플레이어의 y 값 입니다.(스크린의 z 축은 화면을 바라보는 사용자와의 거리를 나타냅니다.) 마우스 좌표를 수정해주고 월드 좌표로 변환해줍니다. 월드 좌표로 변환해준 마우스 포지션과 플레이어의 포지션을 빼주고 normalized..
TrailShader 만들기 1.Trail에 사용할 TrailShader 만들기 간단하게 만든 trailshader에 사용될 Texture 입니다. Blank Shader Graph 만들어 줍니다. Graph Inspector Setting 에서 Active targets 을 universal 설정해주고 Surface type을 transparent, render face를 both로 설정해줍니다. 1. 색상 설정 두가지 색상을 이용해 그레디언트를 만들어줍니다. 2. 텍스처를 설정해 주고 텍스처가 오른쪽으로 이동하게 만들어 줍니다. (위 사진에서는 기본 텍스처를 사용했습니다) 3. 노이즈를 만들어 똑같이 오른쪽으로 이동하게 만들어주고, 노이즈에 그레디언트 효과를 만들어 줍니다. 4. 2번과 3번을 multiply로 곱해주고 clim..
마우스 이동에 따른 물체 옮기기, PlayerPrefs를 이용한 최고 점수 저장 밑 불러오기 오늘의 구현 1. 물체를 마우스의 포지션에 따라 이동시키기 + 이동 영역 제한하기 private void Awake() { camera = Camera.main; cameraHeight = camera.orthographicSize; cameraWidth = cameraHeight * camera.aspect; min = new Vector2(-cameraWidth + padding, -cameraHeight + padding); min = new Vector2(cameraWidth - padding, cameraHeight - padding); } void ClampingPosition() { Vector3 mousePosition = camera.ScreenToWorldPoint(Input.mouse..
프로그래머스 - 정수를 나선형으로 배치하기 주어진 n으로 n*n의 배열을 나선형으로 배치한 이차원 배열을 만드는 문제. 1. 방문처리할 배열을 만듭니다. 2. 이동경로 (4가지방향)을 가지고있는 이차원 배열을 만듭니다.(경로는 오른쪽,아래,왼쪽,위 순으로 이동할 것) 3. 나선형으로 n*n 숫자까지 반복 할 것이기 때문에 listIdx를 만들어줍니다.(경로를 바꿀때마다 ++, 경로의 인덱스를 넘길시 %4) 4. n*n 숫자까지 모두 채울 때 가지 반복할 것이기 때문에 while문을 만들어 줍니다. 5. 조건으로 다음으로 이동할 배열이 이차원 배열을 넘어가지 않으면서 방문하지 않았으면 다음으로 이동할 배열에 현재배열 ++ 해주고 방문 처리를 해준뒤 다음으로 이동할 배열위치를 List에 담아줍니다. 조건에 해당 되지않았을 경우는 경로를 바꿔주야 함으..
GameManager(싱글톤) + CanvasGroup으로 UI 컨트롤 *틀린 점을 발견하신다면 꼭 댓글 남겨주시면 감사하겠습니다😢 오늘의 구현 1.GameManager 구현 ( 싱글톤) 2.CanvasGroup component를 이용한 GameOver UI 만들기 + Time out 싱글톤(Singleton) : 소프트웨어 디자인 패턴중 하나로, 단 하나의 인스턴스만을 사용하여 데이터나 리소스를 관리하고 공유할 수 있도록 하는 것입니다. 1.Gamemanager (Singleton) public class GameManager : MonoBehaviour { private static GameManager instance; private void Awake() { if (instance == null) { instance = this; DontDestroyOnLoad(g..
프로그래머스 - 안전지대 폭탄 주변을 폭탄 위험 지역으로 바꾼 뒤 안전지역 칸수를 구하는 문제. 1. 폭탄 주변을 폭탄 위험지역으로 바꾸기 위한 함수 만들기. 2. 새로운 board 판을 만들기. - 기존 보드판 그대로 사용하면 보드판 순회 도중 보드판이 업데이트 되기때문에 문제가 생길 수 있음. 3. board 판을 순회하면서 폭탄을 발견하면 위에 만든 함수 실행. using System; public class Solution { public int solution(int[,] board) { int answer = 0; int[,] newBoard = new int[board.GetLength(0), board.GetLength(1)]; for(int i = 0 ; i< board.GetLength(0);i++){ for(..
2D 캐릭터 이동 + 카메라 앵글을 이용한 이동 반경 제한 오늘의 구현. 1. 캐릭터의 단순 좌우 이동 2. 카메라 앵글을 이용한 캐릭터의 이동 반경 제한시키기. 1. 캐릭터 이동 Vector2 moveVec; moveVec = new Vector2(Input.GetAxisRaw("Horizontal"),0).normalized * playerSpeed * Time.deltaTime; if(moveVec.x 0) { playerDir = 1; } transform.localScale = new Vector3(playerDir, 1, 1); transform.Translate(moveVec); 좌우 키를 눌렀을때 moveVec에 값을 업데이트 해주고, 그 값이 음수면 왼쪽, 양수면 오..