목록GameEngine & CG/Unity (16)
오보에블로그
상황 제작한 유니티 게임을 WebGL 로 빌드한 뒤 깃헙 페이지에 올리고 싶은 상황 해결 방법 유튜브 링크 에 접속해서 따라하면 된다. 하지만, Failed to download file Build/WebGL Builds.data.gz. 와 같은 오류가 발생하면서, 제대로 페이지에 올라가지 않을 수 있다. 그때는 아래와 같이 Project Settings > Player > Publishing Settings > Decompression Fallback 부분을 체크해준뒤 다시 빌드 하면 해결된다. 완료하면 https://happyobo.github.io/BoidTest/ 와같이 나오는 것을 볼 수 있다.
유니티 스크립트 생명주기 플로우 차트 자세한 사항은 유니티 매뉴얼을 참고한다. 스크립트 컴포넌트를 추가하면, MonoBehaviour 를 상속 받는 클래스가 생성이되고, Start() 와 Update() 부분이 있을 것이다. 이는 사실 유니티 스크립트 생명주기에 따라서 순차적으로 호출되는 함수들 중 하나이다. 생명주기 플로우 차트는 아래와 같다. 처음부터 구현되어 있는 Start() 함수는 주어진 스크립트에대해서 한번만 호출되는 함수이다. 만약에 Start() 보다 더 빨리 초기화를 하고 싶다면 AWake() 를 사용해도 될 것이다. Physics 단계에서부터 Pausing 단계 까지는 프레임마다 반복적으로 호출된다. Update 순서 FixtedUpdate() 한 프레임에서 여러번 호출될 수 있으며, ..
유니티 허브에 접속해서, WebGL을 사용할 유니티 버전에대해 톱니바퀴 버튼을 클릭한 뒤 [모듈 추가] 버튼을 누른다. [WebGL Build Support] 모듈을 클릭 후 설치한다. 유니티 프로젝트에 접속해서 [Package Manager] > Packages 를 Unity Registry 로 변경한다. WebGL Publisher 를 검색후 설치한다. 설치가 완료되면 아래와 같이 Publish 버튼이 생성된다. Publish 버튼을 클릭하면 아래와 같은 UI 가 표시되며, Build and Publish 를 진행한다. 이제 창이 하나 생성되고, 해당 링크로 게임을 실행할 수 있다. (https://play.unity.com/mg/other/webgl-builds-149838)
상황 게임에서 AI 나 시범을 보여주는 기능을 만들려고할때 버튼을 누르는 이벤트 발생시 버튼이 눌리는 효과도 같이 나왔으면 좋겠다. 구현 방식 Button 컴포넌트의 사용 방식이 tint color 일때를 기준으로 설명한다. 현재 보이는 이미지의 색상은 기본 이미지색상과 현재 버튼의 상태에 따른 색상의 곱으로 현재 이미지의 색상을 표현된다. 아래의 첨부 이미지를 보면, 버튼 배치시에Color 과 Normal Color 모두 흰색이기 때문에 버튼을 누르지 않은 기본 상태에서는 첨부한 기본 이미지 색상의 모습으로 버튼이 보인다. 따라서, 버튼이 눌리는 이벤트를 스크립트내에서 직접 호출할 때는 기본 이미지색상과 현재 버튼의 상태에 따른 색상의 곱으로 현재 이미지의 색상을 직접 표현한다. 코드 해당 코드는 Up..
1. 참고 블로그 멍토님께서 작성하신 포스트 가 정말 잘 설명되어 있어 해당 포스트를 참고해서 해결하였고, 기록을 위해 작성한다. 2. Sqlite 다운받기 다운로드 링크 접속해서 자신에게 맞는 버전을 다운로드한다. 3. 플러그인 파일 등록 2 에서 다운로드 받은 파일을 압축해제하면 sqlite3.def , sqlite3.dll 파일을 유니티 프로젝트의 Assets/Plugins/에 올린다.( 없다면 폴더 생성) 자신의 로컬 경로에서 Mono.Data.Sqlite.dll도 Assets/Plugins/에 올린다. 필자는 C:\Program Files\Unity\Hub\Editor\2020.3.19f1\Editor\Data\MonoBleedingEdge\lib\mono\4.5 이었음. 안드로이도에서 사용하기..
API 설명 Material.SetTexture 대표 사용 형식 : public void SetTexture(string propertyName,Texture texture) 해당 Material에 프로퍼티로 속해있는 텍스처를 지정한 texture로 변경하자. 사용 예시 아래와 같이 사용하려면 해당 매테리얼에 지정되어있는 쉐이더 프로퍼티에 _MainTex가 있어야할 것이다. Renderer _renderer = gameObject.GetComponent(); _material = gameObject.GetComponent().material; _material.SetTexture("_MainTex", _texture);
참고 스크립트에서 게임오브젝트 쉐이더 불러오기 맨 처음에는 GetComponent() 을통해 해당 게임 오브젝트의 매테리얼에 접근하려고 했지만, 해당 게임 오브젝트는 매테리얼이 없다고 오류가 나왔다. 인스펙터 창을 보니, 매테리얼이 컴포넌트 처럼 들어가 있다고 생각했는데, 뭔가 다른 컴포넌트와는 다른 생김새이다. 인스펙터 창을 좀더 뒤져보니,Mesh Renderer 컴포넌트 안에 Meterial을 추가하는 필드가 있었다. 이제 아래와 같이 코드를 작성하면 게임 오브젝트가 가지고 있는 쉐이더를 확인할 수 있다. _material = gameObject.GetComponent().material; Debug.Log(_material.mainTexture);
Unity MetrialValue Chart 링크 Unity - Manual: Material charts Material charts Use these charts as reference for realistic settings: Reference Chart for Metallic settings Reference Chart for Specular settings There are also hints on how to make realistic materials in these charts. In essence it is about choosing a wor docs.unity3d.com
1인칭 시점으로 보이게끔 하기 위한 조건 키보드 제어가 가능해야한다. 마우스로 카메라 방향 전환이 가능해야한다. 마우스로 방향이 조절 되어있을 때, y 축 회전 방향으로는 키보드 제어로 인한 전진시 적용이 되어야하지만, x 축 방향 회전시 키보드 제어를 하면 위로 올라가거나 아래로 내려가므로 막아 놔야한다. void MouseRoatate() { float yRotateSize = Input.GetAxis("Mouse X") \* mouseSpeed; float xRotateSize = -Input.GetAxis("Mouse Y") \* mouseSpeed; transform.localRotation \*= Quaternion.Euler(0.0f, yRotateSize, 0.0f); mainCamera...
아래의 사진과 같이 레포지터리 루트에 유니티 프로젝트가 바로 있는 것이 아닌, 루트에 유니티 프로젝트 폴더가 있는 구조라면, Github에서 제공하는 Unity 용 .gitignore가 잘 먹히지 않는다. 원본 .gitignore에는 Library , Temp .. 의 폴더를 무시하라고 명시되어 있지만, 트래킹 되고 있는 상황 해당 부분을 아래처럼 바꿔주자. 그러면 루트 폴더 자체가 유니티 프로젝트가 아니어도 .gitignore가 제대로 동작한다. 그 후에 .gitignore만 push 한다. 꼭 git fetch 를 해줘서야한다. 유니티 프로젝트를 push한다.