public ParticlesMeshModifier(int num_indices_in, int num_pts_in, CreatureParticlesAsset p_asset_in)
     : base(num_indices_in, num_pts_in)
 {
     p_asset = p_asset_in;
 }
Example #2
0
        public static void UpdateWithParticlesForRenderingData(
            CreatureParticlesAsset particles_asset,
            CreatureManager creature_manager,
            bool counter_clockwise,
            ref Vector3[] vertices,
            ref Vector3[] normals,
            ref Vector4[] tangents,
            ref Color32[] colors,
            ref Vector2[] uvs,
            CreatureAsset creature_asset,
            float region_overlap_z_delta,
            bool skin_swap_active,
            string skin_swap_name,
            string active_animation_name,
            ref List <int> final_indices,
            ref List <int> final_skin_swap_indices,
            ref int[] triangles,
            ref int[] skin_swap_triangles)
        {
            particles_asset.mesh_modifier.update(
                creature_manager,
                counter_clockwise,
                ref vertices,
                ref normals,
                ref tangents,
                ref colors,
                ref uvs,
                creature_asset,
                region_overlap_z_delta,
                skin_swap_active,
                skin_swap_name,
                active_animation_name,
                ref final_indices,
                ref final_skin_swap_indices,
                ref triangles,
                ref skin_swap_triangles);

            float normal_z = 1.0f;

            if (counter_clockwise)
            {
                normal_z = -1.0f;
            }

            for (int i = 0; i < vertices.Length; i++)
            {
                normals[i].x = 0;
                normals[i].y = 0;
                normals[i].z = normal_z;

                tangents[i].x = 1.0f;
                tangents[i].y = 0;
                tangents[i].z = 0;
            }

            for (int i = 0; i < triangles.Length; i++)
            {
                triangles[i] = 0;
            }

            SetIndexBuffer(final_indices, triangles, counter_clockwise);
        }