본문 바로가기
반응형

유니티 공부158

Unity - Scene이동 후 Player가 떠 있는 경우, 바닥에 있지 않는 경우 Scene이동 이동 후 Player가 바닥에 붙어있지 않고 떠다니는 오류가 생겼다. Player를 다시 ground에 붙여 놓자 해결 방법 01 ground 설정 플레이어를 붙여 놓고 싶은 게임오브젝트에 ground Layer를 설정 한다. 02 Raycast이용해서 ground와 충돌한 지점으로 Player의 y좌표로 변경 void FindGround() { GameObject player = GameObject.Find("Player"); playerTransform = player.transform; RaycastHit hit; if (Physics.Raycast(playerTransform.position, Vector3.down, out hit, 10f, LayerMask.GetMask("gro.. 2023. 7. 18.
Unity - 다른 객체들을 기반으로 특정 버튼의 기능을 설정하는 방법 1. 버튼 이름 가져오기 다른 객체들의 버튼들에 다 이 스크립트를 추가한다. public class getButtonName : MonoBehaviour, IPointerClickHandler { public static string button_name { get; private set; } public void OnPointerClick(PointerEventData eventData) { GameObject clickedButton = eventData.pointerCurrentRaycast.gameObject; button_name = clickedButton.name; Debug.Log("Clicked button name: " + button_name); } } 2. 버튼 이름을 기반으로 해당.. 2023. 7. 18.
Unity - panel이 켜져있는데 뒤에 GameObject가 클릭되는 경우 영상 썸네일을 보면 panel뒤에 확인창이 떠있는 것을 확인할 수 있다. panel이 켜져있는데 뒤에 cube가 클릭된 것이다. Panel이 켜져 있는 경우 뒤에 GameObject클릭 안되게 하는 방법 01 panel이 활성화 여부를 알게 해주는 메서드 만들기 public bool IsPanelActive() { return panel.activeSelf; } 02 뒤에 있는 GameObject에 OnMouseDown기능을 panel이 안활성되었을때만 실행되도록 설정 private void OnMouseDown() { bool isPanelActive = uiManager.Instance.IsPanelActive(); if (!isPanelActive) { // 실행하고 싶은 코드 입력 } } 결과 확.. 2023. 7. 17.
Unity - 구매, 판매 기능 구현해보기 기본적인 구매, 판매 기능 구현해보기 구매 기능을 더해서 상점을 만들 수 있고 판매 기능을 더해서 인벤토리에 있는 아이템들을 판매하는 기능을 구현할 수 있다. 1. 기본 세팅 01 money 값 money를 static으로 선언하여 인스턴스 없이 클래스 이름과 함께 접근할 수 있다. 이를 통해 어디서나 동일한 money 값을 사용할 수 있다. public static int money { get; private set; } 02 Spend static메서드로 선언해서 정적 변수에 직접 접근 가능하다. 그래서 메서드 안에서 인스턴스 생성 없이 money를 직접 접근할 수 있다. public static void Spend(int cost) { if (cost > money) { Debug.LogError(.. 2023. 7. 17.
Unity - 게임을 실행하면 Prefab이 missing되는 경우 프리팹을 올바르게 선택하고 적용했음에도 불구하고 게임을 실행하면 계속 Missing이 뜨는 문제가 발생하였다. 해결 방법 문제를 해결하기 위해 이것저것 해보다가 찾은 방법은 밖에서 별도로 프리팹을 생성하고 해당 프리팹을 적용하니까 더이상 Missing오류가 발생하지 않았다. 게임이 실행되면서 스크립트내에 Destroy 때문에 프리팹이 사라져서 "Missing" 오류가 발생한 것 같기도 하다. 결론적으로 게임을 실행하면 Prefab이 missing되는 경우 밖에서 별도로 프리팹을 생성하고 해당 프리팹을 적용해보자 2023. 7. 14.
Unity - 3d에서 하늘이랑 땅 (배경) 바꾸는 법 1. Windows - Rendering - Lighting 클릭 2. Lighting 탭 화면 확인 3. Envionment로 들어가서 Skybox Material에 원하는 Material 지정 사용예시 검은색 회색 문양 2023. 7. 9.
반응형