본문 바로가기

Unity

(65)
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..
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..
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에 값을 업데이트 해주고, 그 값이 음수면 왼쪽, 양수면 오..
VFX Graph - Arrow Projectile 준비물 화살모양의 model Visual Effect Graph Spawn System Single Burst : 일회성으로 파티클을 생성하는 기능입니다. Spawn System Inspector Loop Duration(반복 지속 시간) - Infinite(무한), Constant(고정값),Random(랜덤) Loop Count(반복 횟수) - Infinite, Constant,Random Delay Mode(지연 모드) None : 반복 시작 시에 즉시 파티클 시스템이 실행됩니다. 지연이 없습니다. after Loop : 반복이 종료된 후에 파티클 시스템이 지연 없이 다시 시작됩니다. before Loop : 반복 시작 전에 파티클 시스템이 지연 없이 실행됩니다. before and after Loo..
Shader Graph - Fire+smoke Particle System을 이용한 연기를 내뿜는 불을 만들어 볼 것 입니다. unlit으로 shader graph 를 만들어 줍니다. 두가지의 png 스프라이트를 사용할 것인데, 인터넷에 치면 연기 texture 들이 많이 있는데 그중 여러개의 연기 모양을 모아놓은 텍스쳐 시트를 사용하고 그레디언트 텍스쳐를 사용할 것인데, 이것 또한 인터넷에 black gradiant texture을 치시면 많이 나옵니다. 1. 연기 만들기. 연기 텍스쳐 셈플링 하기. 연기를 표현할것이기 때문에 알파값만 사용할 것 입니다. 연기의 투명도를 조절하기위해 변수를 추가하고 multiply로 곱해준뒤 gradiant texture 셈플링한것에 연결해줍니다. 이제 particle System을 추가해 위 그래프로 만든 mat..
Shader Graph - fire flames Package manager Shader Graph Universal RP 1. Texture2D 추가하기 -unity 기본 particle 2. Sample Texture 2D에 연결 3.color를 생성해준후 multiply 노드로 샘플링한 텍스쳐와 색상을 연결해주기. 노이즈 패턴 만들기. Gradient Noise(그라디언트 노이즈) 노드로 노이즈 패턴을 만들어 줍니다. tilling and offset 노드로 텍스쳐를 반복 이동 시켜줍니다. vector2와 time 노드를 생성해 multiply 에 연결해준뒤 tilling and offset에 연결해 줍니다. time 노드로 인해 vector2 값이 계속 증가하면서 tilling and offset으로 지속적으로 vector2에 설정한 방향으로 ..