Ejemplo n.º 1
0
        //      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( );
        }
Ejemplo n.º 2
0
    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;
        }
    }
Ejemplo n.º 3
0
    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);
        }
    }
Ejemplo n.º 4
0
        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);
        }