본문 바로가기

반응형

Unity

(27)
Unity Asset Store Spring Sale!! 2023년 5월부터 6월 초까지!! 이번에 5월 11일부터 6월 2일까지 Unity Asset Store에서 Spring Sale을 진행한다고 한다!! 내가 추천하는 에셋들은 아래와 같다!! 1. Mesh Baker 예전에 Running 게임을 만들 때 너무 많은 Mesh 때문에 렉이 엄청 걸렸엇다. 그럴때 Mesh Baker를 사용하여 최적화를 진행해서 결국 해결하였다!! https://assetstore.unity.com/packages/tools/modeling/mesh-baker-5017?aid=1100lvV4j 2. Pro Sound Collection HTML 삽입 미리보기할 수 없는 소스 게임에서 빠질 수 없는 각종 Sound를 포함하고 있는 에셋!! 필자도 자주 즐겨 쓴다 3. 2D Platformer Tileset HTML..
Unity affiliate 프로그램?? 어느날 갑자기 내 블로그에 비밀 댓글로 댓글이 몇개 달렸다. 다름이 아닌 현재 유니티 어필레이트 프로그램 파트너스를 모집하고 있으니 관심있으면 메일 달라는 댓글이었다. 처음엔 왜 이런 일일 방문자 2자리 겨우 되는 작은 블로그에 이런 댓글이?? 하고 의문이 들었다. 일단은 의문을 제치고 바로 이메일을 보냈고 답변을 받으며 유니티 affiliate 프로그램에 대해 자세하게 알게 되었다. 최근 어필리에이트 프로그램에 홍보를 위해서 유니티에서 따로 마케팅을 하고 있다고 한다. 또한 구글링을 해보니 최근 많은 개발 블로거들이 유니티 어필리에이트 프로그램의 파트너가 되었다고 후기를 남기고 있다. Unity affiliate Program 이란? 콘텐츠 제작자, 블로거, 소셜 미디어 사용자, 인플루언서라면 Unit..
유니티 RaiseEvent를 이용한 준비 완료 시스템 이전 글에서 포스팅한 RaiseEvent를 사용했으며 원리는 매우 비슷하다 이전 글 : https://red-tiger.tistory.com/69 유니티 Photon의 RaiseEvents를 이용한 채팅 시스템 UI에 관한 건 스킵하겠다. 각자 본인 마다 원하는 UI 배치가 있을꺼니깐. 나는 이 포스팅에선 모바일 전용이니깐 키보드로 입력하는 것이 아닌 미리 정해진 구문을 누르면 메세지를 보낼 수 있게 red-tiger.tistory.com 우선 방에 입장하거나 방을 만들었을 때 띄울 UI를 적당히 만들어준다 우선 방에 들어왔을때 중앙의 버튼의 텍스트가 본인이 마스터 클라이언트인지 아닌지에 따라 달라지게 구현한다. 마스터 클라이언트일 때 마스터 클라이언트가 아닐 때 그리고 만약 중앙에 버튼을 눌렀을때 마스..
유니티 Photon의 RaiseEvents를 이용한 채팅 시스템 UI에 관한 건 스킵하겠다. 각자 본인 마다 원하는 UI 배치가 있을꺼니깐. 나는 이 포스팅에선 모바일 전용이니깐 키보드로 입력하는 것이 아닌 미리 정해진 구문을 누르면 메세지를 보낼 수 있게 했다. RPC가 아닌 RaiseEvent 기능을 이용한 채팅 시스템 RaiseEvents에는 4가지 특징이 있다 PhotonView가 필요없다 Unreliable하게 이벤트를 보낼 수 있다 한 오브젝트에서 다른오브젝트로 보내거나 받을 수 있다 특정 플레이어에게만 보낼 수 있다 두 가지 종류의 이벤트가 있는데 Reliable한 이벤트와 Unreliable한 이벤트가 있다 Reliable : 매우 중요한 이벤트고 어떠한 경우에서라도 전달되어야 한다. 네트워크가 얼마나 바쁘든지 간에 이 이벤트는 전달되야한다 Unreli..
유니티 m_ 이 앞에 붙은 변수는 인스펙터에서 컬링한다 프로젝트를 진행하다보면 많은 변수와 많은 함수들을 작성한다. 그래서 나 또한 만들다 보면 이게 변수였는지 함수였는지 잠깐 헷갈리고 이런다. 프로그래머끼리는 변수와 함수에대한 암묵적인 룰을 만들어 사용한다고한다 뭐 변수는 맨앞글자를 소문자로, 메소드는 맨앞글자를 대문자로 등등 유니티 자체에서 만약 변수앞에 m_ 이 붙어있으면 인스펙터창에는 m_을 삭제하고 보여준다. 이를 사용해서 스크립트에서 변수앞에는 m_ 을 붙여줌으로써 변수와 메소드를 쉽게 구분 할 수 있을 것 같다. P.S 혼자 공부하다가 알게된 간단한 잡지식 출처 : https://docs.unity3d.com/kr/2021.3/Manual/VariablesAndTheInspector.html 변수와 인스펙터 - Unity 매뉴얼 본질적으로 스크립..
유니티 Tag 비교 ==, CompareTag() 어떤 걸 사용할까? 이번 포스팅은 정말 간단하다. 뭐 다양한 상황에서 Tag 비교를 자주 사용들 한다. 무언가랑 부딪혔을때 뭐 gameObject.tag=="player" 이런식으로 말이다 하지만 이러한 호출 하나하나가 가비지를 생성한다고 한다. tag를 참조하려고 할 때 문자열을 새롭게 힙에 할당하기 때문이다. 그러므로 태그를 비교해야 할 때는 gameObject.tag=="Player" 이렇게 말고 gameObject.CompareTag("Player") 이렇게 구현하자. 이렇게 함으로써 가비지 생성을 방지 할 수 있다. 출처: https://blog.unity.com/kr/games/optimize-your-mobile-game-performance-tips-on-profiling-memory-and-code-arch..
유니티 3D 멀티플레이 RPC이용법(플레이어 체력 깎기) 당연한 얘기지만 총에 맞으면 체력이 달아야 한다. 일단 위와 같이 적당히 체력바를 만들어 준다. MyPlayer.cs에 위 두 변수를 만들어 준다. playerHealth는 말그대로 플레이어의 체력이고 damage는 총알 한개의 데미지이다. 이런 변수 수치는 개발자 맘대로 하자. 같은 스크립트의 Fire()함수를 아래와 같이 수정한다 if(Physics.Raycast(rayOrigin.position,Camera.main.transform.forward,out hit,100f)) { Debug.Log(hit.transform.tag); if(hit.transform.tag=="Player"&&!hit.transform.GetComponent().IsMine)//Not hitting myself { hit..
유니티3D OnPhotonSerializeView() 사용법 이전 포스팅 영상을 보면 다른 플레이어의 총구섬광 효과가 보이지 않았다. 계속해서 변화하는 어떤 것을 네트워크를 통해 동기화 시키려면 OnPhotonSerializeView()를 사용해야한다. ParticleSystem은 계속 변화하는 것이다. User01의 빨간색이 나 자신의 플레이어라고 가정해보자. 나 자신의 플레이어이므로 계속 해서 무언가를 작성하는 역할을 하고 있다. 즉 내 로컬플레이어는 stream.IsWriting이 참이 되어 stream.SendNext(value)를 실행한다. value는 동기화 하고 싶은 어떤 값이든 될 수 있다. 플레이어의 position이나 rotation도 가능하다. User02입장에서 본 빨간색은 상대방의 플레이어이다. 본인의 로컬플레이어가 아니다. 그러므로 계속 ..

반응형