728x90
TryGetComponet()와 GetComponet의 차이와 사용하는 방법 TryGetComponet() TryGetComponet()함수는 Bool형의 함수로 해당 컴포넌트가 있을 경우, TRUE/FALSE 로 반환해주는 함수이다. 선언하는 방법은 다음과 같이 두가지 방법이 있다. public bool TryGetComponet(Type type, out 찾는컴포넌트 변수명); public bool TryGetComponet(out 찾는컴포넌트 변수명); if(raycastHit.transform.TryGetComponent(out ClearCount clearCount_Try)) { //Has clearcount TryGetComponent.Interact(); } *유니티 2019.2 버전부터 사..
모델링 머티리얼 적용시, Alpha texture 적용하기 해당 글의 버전은 Unity 2021.3.9f1 에서 적용하였다. 다른 옛 버전에서는 Particle-Alpa blend 뭐시기 해서 들어가서 적용했는데 생긴건지 모르겠는데 제대로 적용하는 방법을 찾은거 같다. 모델링안에 텍스쳐를 적용 했을 때 왼쪽 처럼 Alpha 값이 적용되지 않고 텍스쳐 그대로 적용되는 경우가 있다. 다음 문제를 까먹지 않고 기억하려고 적어본다. 텍스처에 Alpha 값이 있는지 확인하기 일단 적용하기 위해서는 적용하려는 Texture에 Alpha 채널이 있어야한다. 없으면 포토샵을 사용해서 Alpha채널을 생성 해주어야한다. Standard 버전 생성한 Marterial 안에서 RenderingMode를 Cutout을 해주면..
레이캐스트(Raycast)를 사용해서 충돌 처리하기 레이캐스트는 광선(Ray)을 쏘는 것을 의미하고 광선(Ray)에 부딪히는 오브젝트(Collider)가 있을 때, 이 오브젝트에 대한 거리, 위치 등의 정보를 반환 해준다. 레이캐스트를 사용하는 방법은 다양한데 원하는 속성을 매개변수에 맞게 넣어주면 된다. Physics.Raycast(Vector3 origin, Vector3 direction, out RaycastHit hitInfo , float maxDistance, int layerMask, QueryTriggerInteraction queryTriggerInteraction) Origin(시작점)에서 Direction 방향으로 레이(Ray)를 쏠때 오브젝트와 부딛혔을 경우, True를 반환하고 ..
Input System Refactor(리펙터링) - 구조 재조정 깨끗한 코드를 만들기 위해서는 복잡성을 최소화하고 관리하는 것이 중요하다. 모든 클래스는 한가지만 수행해야하고 Player 클래스가 있을 경우 Player 만 처리해야한다. Refactor 는 결과의 변경 없이 코드의 구조를 재조정하는 것을 의미한다. 아래의 코드는 Input.GetKey()를 사용해서 A,D,S,W에 따라서 캐릭터가 움직이는 것을 레팩터링을해 가독성을 높이고 유지보수를 편하게 해줄 것이다. private void Update() { Vector2 inputVector = new Vector2(0,0); //왼쪽 if (Input.GetKey(KeyCode.A)) { inputVector.x = -1f; } //오른쪽 if..
시네머신(Cinemachine)사용해서 카메라가 캐릭터 따라 다니게 만들기 패키지 설치하기 Window - Package Manager - Chinemachine 가상의 시네머신을 하나 만들어 주면 CM vcam 이라는 오브젝트가 하나 생성되고 CinemachineVirtualCamera 라는 컴포넌트가 있는 것을 확인 할 수 있다. 기존에 있던 Main Camera에는 CinemachineVirtualCamera와 같은 표시의 아이콘이 오른쪽에 붙어 있고 Main Camera 안에도 CinemachineBrain이라는 컴포넌트가 추가 된 것을 확인 할 수 있다. 기존의 카메라와 달라진 건 없지만 가상의 카메라가 생기고 나면 메인카메라의 설정은 움직일 수 없게 된다 만약 카메라의 구도를 바꾸고 싶을 경우..
캐릭터(Character) 이동(Move) W,A,S,D를 사용해서 이동하는 캐릭터를 만들어 줄 것이다 일단 오브젝트를 하나 만들어서 Player라는 스크립트를 하나 생성해준다. 생성하고 열어보면 다음과 같이 Start()와 Update()가 존재하는데 사용하지 않으면 지워주는 것이 좋다 특히 Update()는 매프레임 마다 돌아가기 때문에 지워주는 것이 좋다 그리고 깔끔한 코드를 작성 해주기 위해서는 private나 public 등 접근 제한자를 항상 명시 해주는 것이 좋다 W,A,S,D를 입력 했음을 계속 확인 해주기 위해서 Update문이 필요하기 때문에 private 형식으로 하나 만들어 준다. private void Update() { //매 프레임 마다 계속 호출된다. } 이제 Update에서..
포스트프로세싱(Post Processing)으로 시각적 효과 주기 시작하기 전에 프로젝트가 UPR가 설치되어 있는지 확인한다. 만약에 기존 버전이 URP 버전이 아니라면 업그레이드해야 한다. https://j2su0218.tistory.com/490 [유니티 Unity] 유니버설 렌더 파이프라인(URP) 프로젝트 변경하기 유니버설 렌더 파이프라인(URP) 프로젝트 변경하기 URP 패키지 다운 받기 기본적으로 맨처음에 프로젝트를 생성할 때 URP 모드로 만드는 방법도 있으나 기존의 프로젝트에서 URP로 변경하고 싶을 j2su0218.tistory.com 빈 게임오브젝트를 하나 만들어서 Volume 컴포넌트를 추가해 준다 그런 다음 비어있는 Profile안에 새로운 Volume Profile을 만들어 준다 ..
유니티(Unity) 작업 단축키 팁TIP Scene에서 보고싶은 오브젝트를 찾아 이동하기, 가까이 보기 오브젝트가 많을 경우 해당 오브젝트를 가까이 보고 싶은 경우에 Shift + F 를 사용하면 그 오브젝트로 Scene화면이 이동한다. Scene화면에 보이는 대로 카메라를 이동시켜 Game씬에도 동일하게 보여주는 방법 MainCamera의 각도를 Scene안의 각도와 같게 만들어주는 단축키가 있다. 메인 카메라를 선택한 다음에 CTRL +SHIFT+F를 눌러주면 위와 같이 카메라의 위치를 Scene뷰에 보는 화면으로 자동으로 바꿔준다.
다른 스크립트 함수,변수 가져오는 방법 1. 사용하길 원하는 함수와 변수 앞에 Static 을 사용하여 어디서든 접근이 가능하도록 만드는 방법 OthersScript.sc 와 SampleScript.sc를 만들어서 변수명 앞에 static을 붙여줘서 전역변수로 만들어 주면 SampleScript.sc안에서도 사용할 수 있게 된다. 2. Find(string findObject) 함수를 사용하여 해당하는 이름을 가진 오브젝트의 컴포넌트에 접근해서 불러오는 방법 OthersScript가 들어가있는 오브젝트의 이름을 찾아서 오브젝트안에 있는 스크립트 함수를 가져오는 방법이다. GameObject.Find("스크립트를 가지고 있는 오브젝트의 이름")GetComponent(); 이방법으로 찾는것도 가능하나 Fin..
모바일 앱 안에서 웹페이지 보여주는 방법 일단 공지사항을 만들기 위해서 유니티안에서 웹을 보여주는 웹뷰 패키지를 다운받아 준다. 구글에서 unity WebView를 검색하면 관련 패키지가 올라가있는 Github가 나온다 https://github.com/gree/unity-webview GitHub - gree/unity-webview Contribute to gree/unity-webview development by creating an account on GitHub. github.com 그리고 패키지를 다운받아서 프로젝트 안에 넣어 주어야한다. 패키지를 여는 방법은 2가지가 있다. 첫번째는sample/Assets/Sample.unity 안에 들어가서 샘플 씬을 여는 방법이 있다. 두번째는 dist..