In this tutorial, you’ll learn how to create a fruit slicing game by using Egretia Pro. There’s a lot to cover — so let’s get started!
- Creating fruits
— Recognize the meshes and materials that make up the model
Fruit →3D model →Game entity
These 3D models can be imported through another program (such as 3dmax or Maya) or the meshes created by program
After creating a cube in the scene or dragging and drop a 3d model in Egretia Pro, you will find that each model contains two components:
• MeshFilter records the mesh data you want to display
- MeshRenderer shows the mesh how to render, such as which shader to use, whether to accept shadows and other settings
In the fruit slicing game, you’ve noticed that the fruit is cut into pieces by us. Thus, it’s time to create the model via programming. Here is some information mainly about mesh creation.
Attributes of mesh
• Vertex coordinates (vertex)
• Texture coordinates (uv)
- Vertex Index
Vertex coordinates: The vertex coordinate array stores the spatial coordinates of each vertex of the Mesh. If a mesh has n vertices and each vertex is a three-dimensional coordinate point, the length of vertices equals n*3
Normal: The normal array stores the normal of each vertex of the mesh, and the length of normal is equal to the length of vertex
• The normal is the vector perpendicular to the surface. We usually use a normal vector of unit length, and the dyadic vector points to the outside of the surface instead of the inside.
• The normal can be used to determine the angle between the light and the vertex.
Texture coordinates: It defines the information of the position of each point on the image. Combining with the 3D model, these points determine the location of the surface texture map. UV provides an accurate correspondence with each point of image for surface of the model object. uv[i] corresponds to vertex[i]
Vertex index: Each mesh is composed of several triangles, and the three points of the triangle are the points in the vertex coordinates. And the sequence of these points’ connection is the vertex index.
Next, let’s compile a component to print the information of log and view the mesh information of Plane and Cube.
Firstly, create a 3d entity;
Secondly, add MeshFilter and MeshRender components to the entity;
Thirdly, implement the mesh property in the MeshFileter component with code;
Lastly, add materails material to MeshRender;
2. Slice the fruit
Firstly, determine the position and the surface to cut, and add the Cut component to the target when the space bar is clicked
Secondly, classify the vertices of the model into the upper and lower parts according to the cut surface;
Then, find out the triangular separated by cutting
Then, calculate the new vertices
Lastly, create two models by the vertices, normal, UVs and indexes
3. How to generate the new slicing
> Create a sliced entity
> Create the attribute of Mesh in MeshFilter components of the sliced entity
The several key attributes of Mesh:
• Vertex coordinates (vertex) — the point created by cutting
• Vertex normal — consistent with or opposite to the normal of the tangent point
• Vertex Index — form triangles by connecting the cutting points according to the counterclockwise attributes
Ø Create the attribute of material in MeshRender components of the sliced entity
Ø Repeat the slicing
4. Slice the fruits with flying knives
Add CutController component to the scene
Setting in onstart:
• Initialize the mesh information of all presets;
• Create the first entity to be cut;
• Initialize the position of the blade;
Setting in onUpdate:
• Add Cut components to the cutting object;
• When the position of blade reaches the bottom, update the blade position and update the next cutting object;
Several main categories:
CutFly, CutFlyPool — — slicing cube and slicing management
CutFillFace,CutFillFacePool- the sliced surface and its management
CutFlySystem — — -Process the animation of the flying slicing (including a cut and the newly generated cut surface and the last slicing) and recycling operations
CutEntityAttributesFactory — — Saves preset mesh information
There is a variety of fruits and multiple type of knives in the game, and we’ll put the information of these fruits and knives in the configuration table.
1. Load the configuration table;
2. According to the information in the configuration table, load the information of fruit and knife;
Stay tuned for updates from the Egretia official channels below so that you can be involved in all the exciting things to come!
Egretia Telegram: https://t.me/Egretia
Egretia Twitter: https://twitter.com/Egretia_io
Egretia Website: https://egretia.io/