/// <summary> /// MaterialSet으로 부터 생성한다. /// </summary> /// <param name="srcMat"></param> /// <param name="uniqueID"></param> /// <param name="isFromPreset"></param> /// <param name="isDefault"></param> public void CopyFromSrc(apMaterialSet srcMat, int uniqueID, bool isFromPreset, bool isPreset, bool isDefault) { _uniqueID = uniqueID; _name = srcMat._name; if (!isPreset) { //프리셋이 아닌 경우 _isReserved = false; if (isFromPreset) { //Src가 Preset인 경우 _linkedPresetID = srcMat._uniqueID; _linkedPresetMaterial = srcMat; } else { //Src가 일반 MaterialSet인 경우 //같은 프리셋 공유 _linkedPresetID = srcMat._linkedPresetID; _linkedPresetMaterial = srcMat._linkedPresetMaterial; } _isDefault = isDefault; } else { //프리셋인 경우 _isReserved = false; _linkedPresetID = -1; _linkedPresetMaterial = null; } _icon = srcMat._icon; _shaderPath_Normal_AlphaBlend = srcMat._shaderPath_Normal_AlphaBlend; _shaderPath_Normal_Additive = srcMat._shaderPath_Normal_Additive; _shaderPath_Normal_SoftAdditive = srcMat._shaderPath_Normal_SoftAdditive; _shaderPath_Normal_Multiplicative = srcMat._shaderPath_Normal_Multiplicative; _shaderPath_Clipped_AlphaBlend = srcMat._shaderPath_Clipped_AlphaBlend; _shaderPath_Clipped_Additive = srcMat._shaderPath_Clipped_Additive; _shaderPath_Clipped_SoftAdditive = srcMat._shaderPath_Clipped_SoftAdditive; _shaderPath_Clipped_Multiplicative = srcMat._shaderPath_Clipped_Multiplicative; _shaderPath_L_Normal_AlphaBlend = srcMat._shaderPath_L_Normal_AlphaBlend; _shaderPath_L_Normal_Additive = srcMat._shaderPath_L_Normal_Additive; _shaderPath_L_Normal_SoftAdditive = srcMat._shaderPath_L_Normal_SoftAdditive; _shaderPath_L_Normal_Multiplicative = srcMat._shaderPath_L_Normal_Multiplicative; _shaderPath_L_Clipped_AlphaBlend = srcMat._shaderPath_L_Clipped_AlphaBlend; _shaderPath_L_Clipped_Additive = srcMat._shaderPath_L_Clipped_Additive; _shaderPath_L_Clipped_SoftAdditive = srcMat._shaderPath_L_Clipped_SoftAdditive; _shaderPath_L_Clipped_Multiplicative = srcMat._shaderPath_L_Clipped_Multiplicative; _shaderPath_AlphaMask = srcMat._shaderPath_AlphaMask; _propertySets.Clear(); _isNeedToSetBlackColoredAmbient = srcMat._isNeedToSetBlackColoredAmbient; #if UNITY_EDITOR LoadShaderAssets(); #endif //프로퍼티 복사 for (int i = 0; i < srcMat._propertySets.Count; i++) { PropertySet newPropSet = new PropertySet(); newPropSet.CopyFromSrc(srcMat._propertySets[i]); _propertySets.Add(newPropSet); } }