// Pmx.Material[0].Faces[0].Vertex1.Position // PMXEditorから持って来る用 public Material(string name, string texName, string sphereName, IEnumerable <Vert> vertice, IEnumerable <int[]> faces, SphereMode sphere = SphereMode.DISBLE) { Name = name; TexName = texName; SphereName = sphereName; Vertice = vertice; Faces = faces; Sphere = sphere; MaterialData.Alpha = 1; var sphereMode = Sphere; switch (sphereMode) { case SphereMode.DISBLE: break; case SphereMode.MULT: MaterialData.UseSphere = true; break; case SphereMode.ADD: MaterialData.UseSphere = true; MaterialData.IsAdd = true; break; case SphereMode.SUB_TEXTURE: break; default: break; } FlattenFace = Faces.SelectMany(x => x).ToArray( ); }
void DoSpheres() { MaterialProperty sphereMode = FindProperty("_SphereMode"); SphereMode sphMode = (SphereMode)sphereMode.floatValue; EditorGUI.BeginChangeCheck(); sphMode = (SphereMode)EditorGUILayout.EnumPopup(MakeLabel("Sphere Mode"), sphMode); if (EditorGUI.EndChangeCheck()) { RecordAction("Sphere Mode"); sphereMode.floatValue = (float)sphMode; } switch (sphMode) { case SphereMode.Add: DoSphereAdd(); break; case SphereMode.Multiply: DoSphereMultiply(); break; case SphereMode.Multiple: DoSphereMultiple(); break; case SphereMode.None: default: break; } }
protected void DoSpheres() { MaterialProperty sphereMode = FindProperty("_SphereMode"); SphereMode sphMode = (SphereMode)sphereMode.floatValue; EditorGUI.BeginChangeCheck(); sphMode = (SphereMode)EditorGUILayout.EnumPopup(MakeLabel("Sphere Mode"), sphMode); if (EditorGUI.EndChangeCheck()) { RecordAction("Sphere Mode"); sphereMode.floatValue = (float)sphMode; } switch (sphMode) { case SphereMode.Add: DoSphereAdd(); break; case SphereMode.Multiply: DoSphereMultiply(); break; case SphereMode.Multiple: DoSphereMultiple(); break; case SphereMode.None: default: break; } if (sphMode > 0) { EditorGUI.indentLevel += 2; MaterialProperty sphereMask = FindProperty("_SphereMask"); ShaderProperty("_SphereBlend"); EditorGUI.indentLevel -= 2; editor.TexturePropertySingleLine(MakeLabel("Sphere RGB Mask", "Sphere Mask (RGB)"), sphereMask, FindProperty("_SphereTint")); editor.TextureScaleOffsetProperty(sphereMask); } }
protected override JobHandle OnUpdate(JobHandle inputDeps) { switch (GameObj.baseData.mode) { case 1: waveMode = new WaveMode { baseData = GameObj.baseData, transformData = GameObj.transformData, freq = GameObj.freq, magn = GameObj.magn, time = GameObj.time, scalej = GameObj.transformData.size, vector = float3.zero, }; jobHandle = waveMode.Schedule(this, inputDeps); break; case 2: rippleMode = new RippleMode { baseData = GameObj.baseData, transformData = GameObj.transformData, freq = GameObj.freq, magn = GameObj.magn, time = GameObj.time, scalej = GameObj.transformData.size, vector = float3.zero }; jobHandle = rippleMode.Schedule(this, inputDeps); break; case 3: cylinderMode = new CylinderMode { baseData = GameObj.baseData, transformData = GameObj.transformData, freq = GameObj.freq, magn = GameObj.magn, time = GameObj.time, scalej = GameObj.transformData.size, vector = float3.zero }; jobHandle = cylinderMode.Schedule(this, inputDeps); break; case 4: sphereMode = new SphereMode { baseData = GameObj.baseData, transformData = GameObj.transformData, freq = GameObj.freq, magn = GameObj.magn, time = GameObj.time, scalej = GameObj.transformData.size, vector = float3.zero }; jobHandle = sphereMode.Schedule(this, inputDeps); break; case 5: torusMode = new TorusMode { baseData = GameObj.baseData, transformData = GameObj.transformData, freq = GameObj.freq, magn = GameObj.magn, time = GameObj.time, scalej = GameObj.transformData.size, vector = float3.zero }; jobHandle = torusMode.Schedule(this, inputDeps); break; default: defaultMode = new DefaultMode { scalej = 1f, vector = float3.zero }; jobHandle = defaultMode.Schedule(this, inputDeps); break; } return(jobHandle); }