Unity Engine

서버에 연결하고 이름을 설정하며, 방을 생성하고, 참여할수있도록 해보자. 닉네임 설정 //서버에 연결하기 전에 닉네임을 설정하는 단계입니다. =================================================== //닉네임을 입력할 InputField public TMP_InputField userNameInput; //연결중임을 알릴 TMP public TMP_Text buttonText; public void OnClickConnect() { //넣어야하는 닉네임은 무조건 1글자 이상으로 설정 if (usernameInput.text.Length >= 1) { //InputField에 넣은 이름을 포톤 이름으로 설정 PhotonNetwork.NickName = usernameIn..
흑흑흑흑흑흑흐흐흑흐르 오목 만드는데 포톤을 처음써봐서 고생을 너무 했다 GPT 4.0이어도 도움을 못주더라구요 하 드디어 거의 완성이야 ㅠㅠ 한탄할때가 없어서 ㅋㅋ 아 그리고 포토샵으로 팬더테니를 예티로 변경했습니다 솜씨 어떤가요 후후
유니티 프로젝트를 위해 2D로 뭘 만들까하다가 오목을 만들어보려고한다. 오목을 만들기위해 공부해야하는 것은 생각보다 많았다. 근데 그냥 오목만 만들면 재미없어서 추억삼아 메이플로 만들어보려고한다. 먼저 오목 UI를 위해 포토샵으로 전부 작업을 진행했다. Texture 폴더를 만들고, 기능에따라 Quick png 시스템을 이용해 나눠놨다. 버튼형식의 리소스들 , 공통적으로 사용하는 부분 ,오목판을 나타낼 판과, 배경인 Background를 넣었다. 이제 나중에 Resources를 불러올때나, 폴더에서 관리할때 편하겠지? 빈 게임오브젝트 Board를 생성했다. SpriteRenderer로 그렸음. GameManager에 보드판 작성을 위해 코드를 작성하려고한다. 어떻게 할거냐면, 메이플 보드판 ui 격자선에..
UI_Manager #1 팝업창을 열어보자. UIManager 스크립트를 생성하고 UI_Popup도 만들어 base를 상속 시켰다. public class UIManager { private int _order = 0; //스택 구조를 사용한다. Stack _popupStack = new Stack(); // == 이름, string name == 프리팹 이름, T == 스크립트 public T ShowPopupUI(string name = null) where T : UI_Popup { if (string.IsNullOrEmpty(name)) name = typeof(T).Name; GameObject go = Managers.Resource.Instantiate($"UI/Popup/{name}"); ..
지난번에 이벤트를 작성을했다. 이벤트를 하나하나 추가하지않고 깔끔하게 바꾸는 방법을 알아보자. UI_EventHandler evt = go.GetComponent(); evt.onDragHnalder += ((PointerEventData data) => { evt.gameObject.transform.position = data.position; }); 부분을 복사해서 UI_Base로 넘어간다. public static void AddUIEvent() { UI_EventHandler evt = go.GetComponent(); evt.onDragHnalder += ((PointerEventData data) => { evt.gameObject.transform.position = data.positio..
PointerEventData: 이벤트 시스템에서 포인터 이벤트(마우스, 터치)등을 처리할 때 사용한다. 포인트 위치추적(커서),이벤트 타입 식별, 대상 식별, 드래그 앤 드롭, 클릭 횟수 및 버튼 종류 등의 입력 정보를 알수있게 된다. 이벤트 방식을 쓰려면 당연하게도 Callback을 이용해야한다. UI_EventHandler를 생성하고, 기존 UI에 Image를 추가해준다. 그렇다면 생성된 이미지를 드래그해서 옮겨보도록하자. 드래그 첫 클릭때 발생하는 IBeginDragHandler, 드래그시에 발동되는 IDragHander 인터페이스를 추가하고 transform.position을 이벤트데이터(현재 마우스 위치)로 이동시키도록 해보자. 가볍게 인터페이스로 구현한고 transfrom.position을 ..
지난번에 바인딩을 하였다. 이제는 바인딩 한 값을 가져와보도록 하려고 한다. 또, UI에 GameObject를 불러오는 법과, Button에서 전부 컨트롤할수 없으므로 스크립트를 나눠 상속 받게 할 것이다. public class UI_Button : MonoBehaviour { Dictionary _objects = new Dictionary private void Start() { Bind(typeof(Buttons)); Bind(typeof(Texts)); } private void Bind(Type type) wherer T : UnityEngine.Object { string[] names = Enum.GetNames(type)//enum string 변환 UnityEngine.Object[] ..
드래그 앤 드롭을 사용하지않고, 이름으로 찾아서 매핑해주자. UI_Button (Canvas) -PointButton (Button) -PointText (BtnText) -ScoreText (text) 먼저 enum으로 타입을 정해준다. enum Buttons { PointButton } enum Texts { PointText, ScoreText } public class UI_Button : MonoBehaviour { private void Start() { Bind(typeof(Buttons)); Bind(typeof(Texts)); } private void Bind(Type type) { //리플렉션을 위한 Type } } ================================= 제너릭 ..
BOSS출현시 Warning Message출력을 위해 UI - TEXT-TextMeshPro Text 폰트 위치 등 정렬 TMPColor.cs 생성하고 추가 TMPColor.cs using TMPro; using UnityEngine; public class TMPColor : MonoBehaviour { [SerializeField] float lerpTime = 0.1f; //텍스트 깜빡깜빡 TextMeshProUGUI textBossWarning; //숨겨놨다가 //객체를 비활성화 할때는 start함수 x -> Awake사용 private void Awake() { textBossWarning = GetComponent(); //이것을 '캐싱' 이라함 } private void OnEnable() ..
public class SoundManager : MonoBehaviour { // 싱글톤 public static SoundManager instance; //자신을 변수로 담는다. public AudioClip soundExplosion; //폭발소리를 저장하는 AudioClip 변수 AudioSource myAudio; //AudioSource 컴포넌트 변수를 담는다. public void Awake() //start보다 먼저 객체가 생성될 때 호출되는 Awake { if(SoundManager.instance == null) //instace가 값이 없냐? { SoundManager.instance = this; //자기자신을받아. } } void Start() { myAudio = GetComp..
Muru
'Unity Engine' 카테고리의 글 목록