private string FormatLimitValue(Vector4 value, PKFxManager.EBaseType baseType) { string retStr = ""; if (baseType == PKFxManagerImpl.EBaseType.Float) { retStr = "[" + value.x + "]"; } else if (baseType == PKFxManagerImpl.EBaseType.Float2) { retStr = "[" + value.x + "," + value.y + "]"; } else if (baseType == PKFxManagerImpl.EBaseType.Float3) { retStr = "[" + value.x + "," + value.y + "," + value.z + "]"; } else if (baseType == PKFxManagerImpl.EBaseType.Float4) { retStr = "[" + value.x + "," + value.y + "," + value.z + "," + value.w + "]"; } else if (baseType == PKFxManagerImpl.EBaseType.Int) { retStr = "[" + PKFxManager.Float2Int(value.x) + "]"; } else if (baseType == PKFxManagerImpl.EBaseType.Int2) { retStr = "[" + PKFxManager.Float2Int(value.x) + "," + PKFxManager.Float2Int(value.y) + "]"; } else if (baseType == PKFxManagerImpl.EBaseType.Int3) { retStr = "[" + PKFxManager.Float2Int(value.x) + "," + PKFxManager.Float2Int(value.y) + "," + PKFxManager.Float2Int(value.z) + "]"; } else if (baseType == PKFxManagerImpl.EBaseType.Int4) { retStr = "[" + PKFxManager.Float2Int(value.x) + "," + PKFxManager.Float2Int(value.y) + "," + PKFxManager.Float2Int(value.z) + "," + PKFxManager.Float2Int(value.w) + "]"; } return(retStr); }
public override void OnInspectorGUI() { //var m_FXText = serializedObject.FindProperty("m_FXText"); //string str = m_FXText.stringValue; //if (str.Length > 65535f / 4f) // str = str.Substring(0, 65535 / 4 - 6) + "\n...\n"; EditorStyles.textField.wordWrap = true; EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(serializedObject.FindProperty("m_AssetName").stringValue); using (new EditorGUI.DisabledScope(Application.isPlaying)) { if (GUILayout.Button("Reimport")) { PKFxManager.ReimportAssets(new List <string> { serializedObject.FindProperty("m_AssetName").stringValue }); } } EditorGUILayout.EndHorizontal(); //EditorGUILayout.TextArea(str); EditorGUILayout.LabelField("Effect info : "); EditorGUI.indentLevel++; EditorGUILayout.LabelField("usesMeshRenderer = " + serializedObject.FindProperty("m_UsesMeshRenderer").boolValue); EditorGUI.indentLevel--; EditorGUILayout.LabelField("Dependencies : "); EditorGUI.indentLevel++; SerializedProperty deps = serializedObject.FindProperty("m_Dependencies"); int depsListSize = deps.arraySize; for (int i = 0; i < depsListSize; i++) { SerializedProperty depDesc = deps.GetArrayElementAtIndex(i); SerializedProperty depPath = depDesc.FindPropertyRelative("m_Path"); SerializedProperty depIsLinearTexture = depDesc.FindPropertyRelative("m_IsTextureLinear"); SerializedProperty depIsMeshRenderer = depDesc.FindPropertyRelative("m_IsMeshRenderer"); SerializedProperty depIsMeshSampler = depDesc.FindPropertyRelative("m_IsMeshSampler"); SerializedProperty depObject = depDesc.FindPropertyRelative("m_Object"); EditorGUILayout.LabelField(depPath.stringValue); EditorGUI.indentLevel++; if (depIsLinearTexture.boolValue) { EditorGUILayout.LabelField("isLinearTexture = " + depIsLinearTexture.boolValue); } if (depIsMeshRenderer.boolValue) { EditorGUILayout.LabelField("isMeshRenderer = " + depIsMeshRenderer.boolValue); } if (depIsMeshSampler.boolValue) { EditorGUILayout.LabelField("isMeshSampler = " + depIsMeshSampler.boolValue); } using (new EditorGUI.DisabledScope(true)) EditorGUILayout.ObjectField(depObject); EditorGUI.indentLevel--; } EditorGUI.indentLevel--; EditorGUILayout.LabelField("Attributes : "); EditorGUI.indentLevel++; SerializedProperty attrs = serializedObject.FindProperty("m_AttributeDescs"); int attrsListSize = attrs.arraySize; for (int i = 0; i < attrsListSize; i++) { SerializedProperty attrDesc = attrs.GetArrayElementAtIndex(i); SerializedProperty attrName = attrDesc.FindPropertyRelative("m_Name"); SerializedProperty attrType = attrDesc.FindPropertyRelative("m_Type"); SerializedProperty minMaxFlag = attrDesc.FindPropertyRelative("m_MinMaxFlag"); PKFxManager.EBaseType baseType = (PKFxManager.EBaseType)attrType.intValue; string minValDesc = ""; string maxValDesc = ""; if ((minMaxFlag.intValue & (int)PKFxFxAsset.AttributeDesc.EAttrDescFlag.HasMin) != 0) { Vector4 minVal = GetMinFValue(attrDesc); minValDesc = FormatLimitValue(minVal, baseType); } else { minValDesc = "[-infinity]"; } if ((minMaxFlag.intValue & (int)PKFxFxAsset.AttributeDesc.EAttrDescFlag.HasMax) != 0) { Vector4 maxVal = GetMaxFValue(attrDesc); maxValDesc = FormatLimitValue(maxVal, baseType); } else { maxValDesc = "[+infinity]"; } Vector4 defaultVal = GetDefaultFValue(attrDesc); string defaultValStr = FormatLimitValue(defaultVal, baseType); EditorGUI.indentLevel++; EditorGUILayout.LabelField(attrName.stringValue); EditorGUI.indentLevel++; EditorGUILayout.LabelField(attrType.enumNames[attrType.enumValueIndex]); EditorGUILayout.LabelField("Min/Max: " + minValDesc + "-" + maxValDesc); EditorGUILayout.LabelField("Default: " + defaultValStr); EditorGUI.indentLevel--; EditorGUI.indentLevel--; } EditorGUI.indentLevel--; EditorGUILayout.LabelField("Samplers : "); EditorGUI.indentLevel++; SerializedProperty smplrs = serializedObject.FindProperty("m_SamplerDescs"); int smplrsListSize = smplrs.arraySize; for (int i = 0; i < smplrsListSize; i++) { SerializedProperty smplrsDesc = smplrs.GetArrayElementAtIndex(i); SerializedProperty smplrsName = smplrsDesc.FindPropertyRelative("m_Name"); SerializedProperty smplrsType = smplrsDesc.FindPropertyRelative("m_Type"); EditorGUI.indentLevel++; EditorGUILayout.LabelField(smplrsType.enumNames[smplrsType.enumValueIndex] + " " + smplrsName.stringValue); EditorGUI.indentLevel--; } EditorGUI.indentLevel--; }