프로그래밍/유니티
[유니티] 롤 골드그래프를 만들어보자(3) - 그래프 내부 채우기
UI를 이용하여 롤 골드그래프를 만들어보자 코드만 필요하신분은 아래로 내리시면 있습니다. 이전에 선까지 찍었으니 이제 그래프 영역 내부를 색칙할 차례입니다. 6. 그려진 그래프의 내부를 채운다. 이번에도 시작에 앞서 만들어야 할게 있습니다. 그래프 내부를 채우는건 동적으로 메쉬를 생성해서 넣어줄 Material이 필요합니다. 1. Blue와 Purple을 두개 만듭니다. 색상은 자유지만 (전 Alpha값을 좀 줄였습니다. 보기 이쁘더라구요) 2. Shader는 UI/Default로 적용합니다. public Transform InnerFilledGroup; // 생성한 객체를 자식으로 둘 부모 public Material BlueMat; public Material PurpleMat; private voi..
[유니티] 롤 골드그래프를 만들어보자(2) - 선 찍기
UI를 이용하여 롤 골드그래프를 만들어보자 코드만 필요하신분은 아래로 내리시면 있습니다. 이전에 점까지 찍었으니 이제 선을 찍을 차례입니다. 각 부분 코드만 정리하고 전체코드는 마지막에 올리겠습니다. 5. 각 점을 연결한 선을 찍는다. 선을 연결하기 전에 이전포스팅에서 말씀드렸다싶이 마스크를 이용하려하니 먼저 선에 붙일 마스크를 만들고 코드를 작성하겠습니다. 1. 이전에 만든 Line 프리팹에 Mask 컴포넌트를 추가한다. 2. MaskPanel 빈 오브젝트를 만들고 3. 자식으로 BLue, Purple을 추가하고 프리팹으로 만들면 끝 코드 고고 public Transform LineGroup; // 생성한 선을 자식으로 둘 부모 public GameObject Line; // 선 프리팹 public G..
[유니티] 롤 골드그래프를 만들어보자(1) - 점 찍기
UI를 이용하여 롤 골드그래프를 만들어보자 코드만 필요하신분은 아래로 내리시면 있습니다. 위와 같은 결과물을 만드는게 목표입니다. 일단은 골드그래프라고 했지만 데이터를 무엇을 쓰느냐에 따라 데미지나 받은피해량, 힐량 등 어디든 활용가능하게 하는것도 목표 하이라키는 이렇게 만들어놨습니다. 현재까지 게임화면으로 보이는 모습은 이건.. 꾸미기 나름이므로 사실 어떻게 만들어도 상관없지만 일단은 이런식으로 만들어놨습니다. 이제 점과 선을 만들어놔야합니다. 일단 점과 선도 딱히 이쁘게 보이기 위한 리소스를 쓸 생각없이 디폴트리소스를 이용할거라 코드상에서 동적으로 생성해도 되지만 귀찮기 때문에 그냥 미리 프리팹으로 만들어 사용하겠습니다. 편한게 최고지 않겠습니까 관련해서 점과 점사이에서 우세정도가 달라지면 선의 색이..
[유니티] Delegate를 이용한 공통 팝업
언제든 사용할 수 있는 공용 팝업을 만들자! 생김새는 위와같이 3종류의 팝업을 만들어 상황에 맞추어 쓸 예정이다. 하이라키는 위처럼 만들었다. MessagePopUp은 MessagePopUpController를 갖고 있으며 BlockPanel은 뒤에 배경 블러처리용으로 사용했다. 메인은 PanelPosition 아래있는 Notice, Caution, Warning이다. 자식으로 있는 Text는 위 그림과 같이 상단의 알림, 주의, 경고가 입력되어있다. Message는 내가 넣고 싶은 텍스트를 입력할 수 있는 곳이고 OKButton과 YesOrNo버튼은 하단에 "확인" 버튼 하나만 띄울 것인지 "예, 아니오" 버튼 두개를 뜨게할지 골라 출력하게 한다. 대략 요런 형태가 된다. 아래는 코드 // Messag..
[유니티] UI 클릭 등 이벤트 처리
2D오브젝트나 3D오브젝트에 마우스를 호버하는 기능이나 클릭해서 어떠한 동작을 구현할 땐 OnMouseDown, Up, Drag, Enter, Exit으로 처리가 가능했다. 하지만 UI는 위의 함수들을 등록해놔도 먹히지 않는다. UI는 Canvas에 Graphic Raycaster라는 것이 있다. 이것이 UI의 모든 포인터 이벤트를 관리하게 된다. 사용방법은 간단하다. 1. using UnityEngine.EventSystems; 2. 여러가지 인터페이스 중 사용할 것을 고른다. (여러개 동시 사용도 가능하다.) 3. 선언한 인터페이스를 구현한다. using UnityEngine; using UnityEngine.EventSystems; public class UIEventTest : MonoBehavi..
[유니티] 3D 오브젝트 마우스로 회전시키기
using UnityEngine; public class ObjectRotater : MonoBehaviour { private float speed = 3f; void Update() { transform.Rotate(0f, -Input.GetAxis("Mouse X") * speed, 0f, Space.World); transform.Rotate(-Input.GetAxis("Mouse Y") * speed, 0f, 0f); } } 간단하게 구현 가능하다. 이 코드를 오브젝트에 붙여 놓으면 마우스를 따라 오브젝트가 회전한다. 마우스를 드래그해서 회전시키고 싶다면 if문을 추가하면 된다. using UnityEngine; public class ObjectRotater : MonoBehaviour { p..