paullj / unity-ecs-instanced-sprite-renderer Goto Github PK
View Code? Open in Web Editor NEWAn example of a simple performant sprite renderer using Unity's new ECS system
License: MIT License
An example of a simple performant sprite renderer using Unity's new ECS system
License: MIT License
Hello, I am currently working on a 2D sprite-based game and recently went through the process of updating my implementation of a sprite renderer with frustum culling.
If you are interested in adding frustum culling to your sample, you can use my code as an example. It is based on the Unity.Rendering.MeshInstanceRenderer
available in Unity Entities v0.0.12, but modified where necessary for sprite rendering.
The code is available as a public gist (as the source repository is currently private):
There are optimizations I plan on making to it (such as passing tilemap rect values as material properties and not separate batches), but hopefully it can serve as a reference you.
That way it would also work in a build.
There is ~3.1kb GC allocated per frame
These are from the lookups on meshCache and materialCache, which use SpriteInstanceRenderer as a key
The default ObjectEqualityComparer used in the Dictionary class will generate garbage when calling Equals() and GetHashCode()
This can be observed using the Deep Profiling option in the Unity profiler
This can be fixed by making SpriteInstanceRenderer implement the interface IEquatable in a way that does not generate garbage
It could alternatively be fixed by creating an IEqualityComparer class, and supplying it on construction to these Dictionary instances.
If not done, the shader isn't embedded in the build (unless it was used somewhere else in the project), throwing an error.
Hi, nice work there, any chance for an update for the latest version of unity (2019.2.12-f1)?
=)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.