Material 변경할 오브젝트 기본 설정
// Resources/이후 Material 파일 경로 지정
// ex) "Material/Glass_B"
private string materialPath = "파일경로";
// Material 불러오기
private Material mat;
mat = Resouroes.Load<Material>(materialPath);
// Material 조작할 게임 오브젝트 생성
GameObject ob = new GameObject("object");
ob.AddComponent<MeshFillter>();
ob.AddComponent<MeshRenderer>();
// Material 설정
ob.GetComponent<MeshRenderer>().shareMaterial = mat;
Material 자체 변경
// Material 개수만큼 상수 선언
const int MATERIAL_NUM = 10;
public int i;
// Material Inspector에서 각각의 Material 추가필요
public Material[] mat = new Material[MATERIAL_NUM];
public void ChangeMat()
{
// i값을 통해서 Material 변경
gameObject.GetComponent<MeshRenderer>().material = mat[i];
}
Color, Smoothness 변경
// 색상 변경 RGBA 255 기준
// 225를 22500%로 인식하기 때문에 255를 나누어주어야함
// color 대신 color32사용시 255가능
gameObject.GetComponent<Renderer>().material.color = new Color(value/255f,
value/255f, value/255f, 1);
// Standard Shader에서 Smoothness값 변경할때 사용
// value는 0~1 사이의 float값
gmaeObjcet.GetComponent<MeshRenderer>().material.SetFloat("_Smoothness", value);
** 해당 머테리얼 축소 및 확대 > 간격의 차이 기능
** brightness > darkness 기본 구조의 value bar
*** (유리창) 투명도 설정 기능
- 축소 및 확대로는 Offset설정 x, y를 조절함 이는 가로 세로로 얼마나 확대할 것인지 설정 가능 간격의 차이로는 Tilling설정 x, y를 조절함 이는 하나의 오브젝트에 가로 세로로 얼마나 반복할 것인지 설정 가능
- 밝기는 Metalic 조절시 얼마나 빛 반사가 되는지 설정 가능, 수치가 높을수록 빛 반사가 잘됨
- 투명도 설정시 RenderingMode Transparent로 설정후 투명도 조정
if, 만일 사용자가 원하는 텍스처 라면? 기본적으로 png/jpg를 가지고 텍스처로 만드는 기능이 있음 - 스크립트화 필요
Shader 내 Texture 변경
- Texture파일은 Resources폴더 내에 있어야 접근이 가능함
// 불러올 Texture파일
Texture 텍스쳐 = Resources.LoadAssetAtPath("Asset/텍스처경로/texture.png",
typeof(Texture)) as Texture;
Renderer _renderer = 텍스쳐를 바꿀 오브젝트.GetComponent<Renderer>();
_rendere.material.mainTexture = 텍스쳐;
'Unity' 카테고리의 다른 글
GeoJson 이란? 그리고 유니티와 연동하기. (1) | 2023.10.30 |
---|---|
카메라 워킹 설정 (스크립트 없이 경로상 카메라 이동) (2) | 2023.10.26 |
Probuilder CSG 사용 (0) | 2023.10.18 |
DXF 캐드파일 불러오기 (0) | 2023.10.18 |
(Unity) Probuilder 사용법 (1) | 2023.10.18 |