0/ 50/ /0

This time we will share several technical topic which related to Program development. It is recommended to read for 15 minutes. Any unique insights or discoveries, please feel free to contact us or discuss.



Q1: For example, in the game like “Clash of Clans”, if your main city is hit by someone else, you will receive a notification on your phone that someone is hitting you. One question is that the characters have been killed in the game, why can I still receive this notification on my phone? This is a real-time notification, not a message sent regularly. What should I do?

The client cannot calculate the accurate time to send message, so it still has to rely on the server. Android has used Aurora push before, it is a good way. iOS provides a server push solution. The general principle is that our server is firstly informed (Apple’s server or Aurora’s server) and then turns to players to send notifications.

Thanks to 雨松MOMO for providing the answer above.

XG Push of Tencent is also available. It divides push into server push and local push. Generally, local push is needed for your demand, and the iOS system itself supports this push. Android does not have a corresponding API, so you need to start the server yourself and bind it to a system process to ensure that the process will not be stopped. However, now many major manufacturers develop their own systems, so it is difficult to achieve this step, and some manufacturers’ apps are in the whitelist of the system, so background processes will not be stopped.

Thanks to Zheng Xiao for providing the answer above.

Resource management

Q2: Now in our game, it’s special effects artists who use Animation and particles to make a lot of UI special effects, but there is a problem that they will not pay attention to performance issues, and once I change some attributes, I have to make it the key frame again, in this case, the communication cost is very high. Is there any good solution?

I do like this: the special effects Prefab program made by artists should not be used directly, but provide a tool for them to export and generate a new Prefab.


The advantage of this method is that it can be checked when exporting, such as checking the number of mappings, particles, animations, etc. We can set the standard of UI particle effects in advance. When exporting, we find that the resources do not meet the specifications or have problems, and then they will be prompted with errors, and Prefab cannot be exported. In this way, the artists cannot upload the SVN program, and will not update to the special effects with problems like efficiency problems.


In fact, this idea can be used not only for special effects, but also for UI interfaces, characters, scenes, etc. While Prefab is automatically generated, you can also do some additional logic.

Thanks to 雨松MOMO for providing the answer above.

My method is similar. I don’t use the importer to force standardized resources. I can let the packer start a resource scanning action every morning, and find out the non-compliant resources and then generate a report.

Thanks to Wang Liang for providing the answer above.

My idea:


Write my own Timeline Editor (Unity or Unreal), then define the scope of operations related to artists in Editor, such as the number of single particle effects and the use of resources such as models, animations, materials, etc. When generating special effect data, check resources and data and organize resources to avoid resource redundancy and irregularities.




1. Separate resources and data, there is no coupling between resources, so that they can be quickly modified and adjusted;


2. The data can be shared in Edit mode, which is also convenient for joint production, and conflicts can be quickly handled;


3. Template effects, greatly improving development efficiency.


Two points to note:


1. FBX resources are redundant, and associated model and animation resources are regarded as FBX paths in Unity by default. My strategy is to extract the resources which I need from FBX and make them into an Asset file, and replace the resources dependence on Timeline to newly generated resources.


2. The Editor itself should try doing playback function (especially particles).

Thanks to Zheng Xiao for providing the answer above.


Q3: Should multithreaded rendering be turned on or off? For example, on low-end machines, is it helpful to open multi-threaded rendering on Redmi Note2? Or is it better to close it directly?

 You can test it on Redmi Note 2 to see the performance difference between two operations. I learn that many large ARPGs now enable multi-threaded rendering.

Thanks to Zhang Rui for providing the answer above.

For the current mobile games in the Chinese market, it is recommended to enable multi-threaded rendering, which can not only greatly reduce the pressure of the rendering module on the main thread, but also greatly reduce the time spent on loading resources such as textures, Meshes and Shaders.


Of course, all methods have certain limitations and problems. For the problems we have encountered before, you can directly search for multi-threaded rendering in UWA Q & A.

This answer is provided by UWA.


Q4: RenderTexture AA is set to 1, depth is 0, the memory size on the PC is correct, but the memory on the mobile phone has increased by about three times. Why?

It should not be tripled. It is recommended to check the specific parameters, resolution, format and other parameters of each RenderTexture through UWA Performance Analysis.

This answer is provided by UWA.

The change in memory may be due to the resolution. The size of RenderTexture follows the resolution. You can compare the resolution of the RenderTexture you see on the PC and that on the phone.

Thanks to deviljz for providing the answer above.

This is the 64th UWA Technology Sharing for Unity Development. As we all know, Our life has a limit but knowledge has none. These problems are only the tip of the iceberg and there are more technical problems during our program development which deserve to discuss. Welcome to join UWA Q&A community, let‘s explore and share knowledge together!




Post a Reply