목록GameEngine & CG (28)
오보에블로그

1. World 안에서 변경 두가지 방법이 존재한다! 원하는 메쉬를 World 로 가져온다음에 가져온 메쉬를 클릭하고 위치 이동 모드로 변경(W키) 시킨 다음, alt키를 누른 상태에서 마우스 휠 버튼으로 드래그 한다. 그 후에 이 상태를 고정시키고 싶다면, 우클릭 > Pivot > Set as Pivot Offset 을 클릭한다. 2. 메쉬 파일 자체적으로 변경 1 번 방법은 World 내의 액터 상에서만 변경이 되고, 실제 메쉬 파일에서는 적용이 안되므로, 본인은 2번 방법을 사용했다. 메쉬 에딧 모드에 들어가서( 메쉬 더블 클릭) Import Setting > Transform> Import Translation 을 변경한다. 제대로 변경되었는지 확인하려면, Reimport Base Mesh를 클릭..
상황 마인크래프트에서 땅과같은 지형물을 획득했을 때 이를 손에 들고 있게 만들고 싶다. 큐브를 손에 장착할려면 skeletal mesh 여야하는데, 언리얼에서 기본으로 제공하는 1M_Cube 메쉬는 static mesh여서 변환이 필요하다. 해결 방법 참고 사이트 에서 첫부분만 읽으면 언리얼 상으로는 안된다는 것 같지만,,! 계속 쭉 읽다보면 가능하다고 써져있다. Try this: Right click your static mesh → Asset Actions → Export → save .fbx. Then, click import → select .fbx. On fbx import options, toggle “skeletal mesh”, and set “skeleton” to None. Please ..

상황 언리얼은 맨처음에 프로젝트를 생성할 때, 블루프린트 전용으로 사용할지, C++ 클래스 로 사용할지 선택하고 진행한다. C++ 용으로 프로젝트를 생성하면 아래와 같이 C++ Classes 라는 폴더가 생성되고, 여기에 C++ 클래스를 추가할 수가 있는데, 블루 프린트 전용으로 선택하고 진행하면 해당 폴더가 없고, 컨텐츠 폴더 아래에 C+ 클래스를 만들려고 하면 오류가 발생한다. 마켓 플레이스에서 가져온 라이브러리 중에 "Create Project" 로만 라이브러리를 프로젝트에 넣을 수 있는 유형이 있는데, 이때 해당 라이브러리가 블루프린트 전용이라면, C++ 프로젝트로 변환해줘야하는 상황이 발생한다. 해결 방법 참고 사이트 : https://allarsblog.com/2015/11/05/convert..

유니티 허브에 접속해서, 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 이었음. 안드로이도에서 사용하기..
fxc 란? DireceX 에 포함된 셰이더를 오프라인에서 컴파일 시 사용하는 도구 실행 방법 디버그 모드 버텍스 셰이더 관련 컴파일 fxc "컴파일 할 셰이더 파일명.hlsl" /Od /Zi /T vs_5_0 /E "버텍스 셰이더 함수명" /Fo "컴파일한 셰이더 파일 명.cso" /Fc "컴파일한 어셈블리 코드 명.asm" 픽셀 셰이더 관련 컴파일 fxc "컴파일 할 셰이더 파일명.hlsl" /Od /Zi /T ps_5_0 /E "픽셀 셰이더 함수명" /Fo "컴파일한 셰이더 파일 명.cso" /Fc "컴파일한 어셈블리 코드 명.asm" 릴리즈 모드 버텍스 셰이더 관련 컴파일 fxc "컴파일 할 셰이더 파일명.hlsl" /T vs_5_0 /E "버텍스 셰이더 함수명" /Fo "컴파일한 셰이더 파일 명..
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