void Start() { _transform = transform; lastSpawnPosition = _transform.position; _coresCount = SystemInfo.processorCount; _particleCount = chunkSize; particleTotal = _particleCount; particles = new Puffy_ParticleData[_particleCount]; particlesPointers = new int[_particleCount]; Clear(); if (colorMode == colorModes.Gradient && GetComponent <Puffy_Gradient>() == null) { colorGradient = (gameObject.AddComponent <Puffy_Gradient>() as Puffy_Gradient); hasGradient = colorGradient.enabled; } if (autoAssign) { if (puffyRenderer == null) { Puffy_Renderer renderer = null; if (autoRendererName == "") { renderer = Puffy_Renderer.GetRenderer(); } else { renderer = Puffy_Renderer.GetRenderer(autoRendererName); } if (renderer == null) { renderer = Puffy_Renderer.GetRenderer(); if (renderer) { Debug.LogWarning("Can't find a PuffyRenderer gameobject with the name '" + autoRendererName + "' , the first renderer found is picked instead"); } else { Debug.LogWarning("Can't find any PuffyRenderer"); } } if (renderer) { renderer.AddEmitter(this); } puffyRenderer = renderer; } } }
public override void OnInspectorGUI() { serializedObject.Update(); Puffy_Renderer myTarget = (Puffy_Renderer)target; myTarget.perf_foldout = EditorGUILayout.Foldout(myTarget.perf_foldout, "Performances"); if (myTarget.perf_foldout) { //myTarget.render = EditorGUILayout.Toggle("Render",myTarget.render); myTarget.PassMode = (Puffy_Renderer.PassModeType)EditorGUILayout.EnumPopup("Pass Mode", myTarget.PassMode); if (myTarget.PassMode == Puffy_Renderer.PassModeType.Auto) { myTarget.updateThreshold = (float)EditorGUILayout.Slider("Update threshold", myTarget.updateThreshold, 0f, 0.1f); } myTarget.useThread = EditorGUILayout.Toggle("Use Threads", myTarget.useThread); if (myTarget.useThread) { myTarget.coresSetup = (Puffy_Renderer.coreslevels)EditorGUILayout.EnumPopup("Cores Setup", myTarget.coresSetup); } EditorGUILayout.Space(); myTarget.meshSetup = (Puffy_Renderer.meshlevels)EditorGUILayout.EnumPopup("Mesh face count", myTarget.meshSetup); EditorGUILayout.Space(); myTarget.debug = EditorGUILayout.Toggle("Show Debug", myTarget.debug); if (myTarget.debug) { myTarget.debugMode = (Puffy_Renderer.debugModes)EditorGUILayout.EnumPopup("Debug Mode", myTarget.debugMode); } } myTarget.aspect_foldout = EditorGUILayout.Foldout(myTarget.aspect_foldout, "Aspect"); if (myTarget.aspect_foldout) { myTarget._light = EditorGUILayout.ObjectField("Light", myTarget._light, typeof(Light), true) as Light; myTarget.useAmbientColor = EditorGUILayout.Toggle("Use Ambient Color", myTarget.useAmbientColor); if (myTarget.useAmbientColor) { myTarget.cameraBackgroundAsAmbientColor = EditorGUILayout.Toggle("Camera BG as Ambient Color", myTarget.cameraBackgroundAsAmbientColor); } EditorGUILayout.Space(); myTarget.particlesMaterial = EditorGUILayout.ObjectField("Material", myTarget.particlesMaterial, typeof(Material), false) as Material; myTarget.TextureColCount = EditorGUILayout.IntField("Texture Col Count", myTarget.TextureColCount); myTarget.TextureRowCount = EditorGUILayout.IntField("Texture Row Count", myTarget.TextureRowCount); EditorGUILayout.Space(); myTarget.detailsScaling = EditorGUILayout.Slider("Details scaling", myTarget.detailsScaling, 0.01f, 2f); } myTarget.visibility_foldout = EditorGUILayout.Foldout(myTarget.visibility_foldout, "Visibility"); if (myTarget.visibility_foldout) { myTarget.MaxRenderDistance = EditorGUILayout.IntField("Max render distance", myTarget.MaxRenderDistance); myTarget.AutoLOD = EditorGUILayout.Toggle("Auto LOD", myTarget.AutoLOD); myTarget.ScreensizeClipping = EditorGUILayout.Slider("Screensize Near clipping", myTarget.ScreensizeClipping, 0f, 2f); myTarget.ScreensizeClippingFade = EditorGUILayout.Slider("Near clipping fade range", myTarget.ScreensizeClippingFade, 0f, 1f); } EditorGUIUtility.LookLikeInspector(); SerializedProperty tps = serializedObject.FindProperty("Emitters"); EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(tps, true); if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); } EditorGUIUtility.LookLikeControls(); if (GUI.changed) { EditorUtility.SetDirty(target); } }