UnityTips: How To Select The Graphics API Based On The Current Android Device
https://medium.com/@chen_jd/unitytips-how-to-select-the-graphics-api-based-on-the-current-android-device-691886cc640
#android #graphics #api
https://medium.com/@chen_jd/unitytips-how-to-select-the-graphics-api-based-on-the-current-android-device-691886cc640
#android #graphics #api
Medium
UnityTips: How To Select The Graphics API Based On The Current Android Device
With more and more Android phones supporting both GLES and Vulkan, mobile game developers often face a problem, can they select which…
Shapes
a real-time vector graphics library for Unity by Freya Holmér
https://acegikmo.com/shapes/
#shapes #vector #library
a real-time vector graphics library for Unity by Freya Holmér
https://acegikmo.com/shapes/
#shapes #vector #library
Acegikmo
Shapes
Shapes - a real-time vector graphics library for Unity
Simplify game error reporting with BacktraceBacktrace - Unity Technologies Blog
https://blogs.unity3d.com/ru/2020/06/11/simplify-game-error-reporting-with-backtrace/
#backtrace #exception #crash #reporter
https://blogs.unity3d.com/ru/2020/06/11/simplify-game-error-reporting-with-backtrace/
#backtrace #exception #crash #reporter
Unity Blog
Simplify game error reporting with Backtrace | Unity Blog
Programmers are all too familiar with the time-consuming efforts of analyzing the crash and error reports they receive during new feature development, game testing, or released play. Understanding what happened and whether it matters takes a lot of back and…
Your assets in the Unity Package manager from a git subfolder
https://medium.com/@FredericRP/your-assets-in-the-unity-package-manager-from-a-git-subfolder-1339880dd09f
#git #subfolder #upm
https://medium.com/@FredericRP/your-assets-in-the-unity-package-manager-from-a-git-subfolder-1339880dd09f
#git #subfolder #upm
Medium
Your assets in the Unity Package manager from a GiT subfolder
Since I shut down my video games studio, I managed to rebuild an upgraded version of assets we designed during that time. For my own…
The danger of async/await and .Result in one picture – TooSlowException
https://tooslowexception.com/the-danger-of-asyncawait-and-result-in-one-picture/
#async #await #deadlock
https://tooslowexception.com/the-danger-of-asyncawait-and-result-in-one-picture/
#async #await #deadlock
Анимация с помощью шейдера в Unity — Gamedev на DTF
https://dtf.ru/gamedev/152957-animaciya-s-pomoshchyu-sheydera-v-unity
#shader #animation
https://dtf.ru/gamedev/152957-animaciya-s-pomoshchyu-sheydera-v-unity
#shader #animation
DTF
Анимация с помощью шейдера в Unity — Gamedev на DTF
After long adventures and frustrations with UGUI, I can say with confidence that reading the source code helps better than official documentation. There are many "not a Bug, but rather a feature by design" things, won't be fixed in current HorizontalOrVerticalLayoutGroup
To avoid using ForceRebuildLayoutImmediate or/and some manual update workarounds, the following approach works well:
Both "child controls size" checkboxes must be enabled and "child force expand" disabled for all ILayoutController (Horizontal, Vertical, also for nested ones), then to control the dimension of the objects you simply use the LayoutElement component (min, pref, flex sizes). As a result, any dynamic content is correctly aligned, regardless of the activation/deactivation/addition/removal of neighbors.
Note 1: There is no need for ContentSizeFitter component for GameObjects, that are first level children of any LayoutGroup. The main thing is to correctly set the checkboxes, as described above. However ContentSizeFitter may be useful for top level container, or children of children that are not directly controlled by any LayoutGroup.
Note 2: Minimize LayoutGroup nesting when possible. Layout rebuild is very expensive. More info on topic:
Unite Europe 2017 - Squeezing Unity: Tips for raising performance.
https://forum.unity.com/threads/force-immediate-layout-update.372630/#post-5604151
#ugui #ui #layout #optimization #performance #force #rebuild
To avoid using ForceRebuildLayoutImmediate or/and some manual update workarounds, the following approach works well:
Both "child controls size" checkboxes must be enabled and "child force expand" disabled for all ILayoutController (Horizontal, Vertical, also for nested ones), then to control the dimension of the objects you simply use the LayoutElement component (min, pref, flex sizes). As a result, any dynamic content is correctly aligned, regardless of the activation/deactivation/addition/removal of neighbors.
Note 1: There is no need for ContentSizeFitter component for GameObjects, that are first level children of any LayoutGroup. The main thing is to correctly set the checkboxes, as described above. However ContentSizeFitter may be useful for top level container, or children of children that are not directly controlled by any LayoutGroup.
Note 2: Minimize LayoutGroup nesting when possible. Layout rebuild is very expensive. More info on topic:
Unite Europe 2017 - Squeezing Unity: Tips for raising performance.
https://forum.unity.com/threads/force-immediate-layout-update.372630/#post-5604151
#ugui #ui #layout #optimization #performance #force #rebuild
float val = smoothstep(_Radius + _Blend, _Radius, UVDistance) * _CellBuffer[i].z;
Smoothstep работает следующим образом: если переменная «UVDistance» больше, чем "_Radius + _Blend", то она возвращает 0. Если переменная меньше, чем "_Radius", то она возвращает 1. Между ними значения плавно интерполируются от 0 до 1.
#shader #smoothstep
Smoothstep работает следующим образом: если переменная «UVDistance» больше, чем "_Radius + _Blend", то она возвращает 0. Если переменная меньше, чем "_Radius", то она возвращает 1. Между ними значения плавно интерполируются от 0 до 1.
#shader #smoothstep
Реализация тумана войны из Civilization VI в Unity
https://m.habr.com/en/post/505346/
#shader #compute #fog #war
https://m.habr.com/en/post/505346/
#shader #compute #fog #war
Habr
Реализация тумана войны из Civilization VI в Unity
Эффект тумана войны из Civilization VI — отличный пример простой структуры вычислительного шейдера (compute shader). Если вы всегда хотели узнать об основах программирования таких шейдеров, то...
Volumetric Light using Particles in Unity
https://medium.com/@rakeshmalik91/volumetric-light-using-particles-in-unity-a6e768edf454
#particles #volumetric #effect
https://medium.com/@rakeshmalik91/volumetric-light-using-particles-in-unity-a6e768edf454
#particles #volumetric #effect
Medium
Volumetric Light using Particles in Unity
God Ray or Sun Shaft or any kind of Volumetric Light is a very common effect in any realistic scene. Unity 5 comes with a image effect for…
C# Delegates with IoC Containers and Dependency Injection
An interesting article on how to replace one method interfaces with delegates, how to use them inside DI containers and unit tests.
https://christianfindlay.com/2020/05/15/c-delegates-with-ioc-containers-and-dependency-injection/
Repo with examples: https://github.com/MelbourneDeveloper/Samples/tree/master/MockDelegates/MockDelegates
#delegate #ioc #di
An interesting article on how to replace one method interfaces with delegates, how to use them inside DI containers and unit tests.
https://christianfindlay.com/2020/05/15/c-delegates-with-ioc-containers-and-dependency-injection/
Repo with examples: https://github.com/MelbourneDeveloper/Samples/tree/master/MockDelegates/MockDelegates
#delegate #ioc #di
Civilization VI Fog of War
Case Study
https://lexdev.net/tutorials/case_studies/civilization_fogofwar.html
#shader #compute #fog #war
Case Study
https://lexdev.net/tutorials/case_studies/civilization_fogofwar.html
#shader #compute #fog #war
Span
tl;dr Use Span to work with ANY kind of memory in a safe and very efficient way. Simplify your APIs and use the full power of unmanaged memory!
Important notice: async and await are awesome C# features. They make our life easier by solving a lot of problems and hiding a lot complexity from us.
But whenever async & await are used, an AsyncMethodBuilder is created. The builder creates an asynchronous state machine. Which at some point of time might put the parameters of the method on the heap. This is why Span must not be an argument for an async method.
https://adamsitnik.com/Span/
#csharp #span #performance #gc
tl;dr Use Span to work with ANY kind of memory in a safe and very efficient way. Simplify your APIs and use the full power of unmanaged memory!
Important notice: async and await are awesome C# features. They make our life easier by solving a lot of problems and hiding a lot complexity from us.
But whenever async & await are used, an AsyncMethodBuilder is created. The builder creates an asynchronous state machine. Which at some point of time might put the parameters of the method on the heap. This is why Span must not be an argument for an async method.
https://adamsitnik.com/Span/
#csharp #span #performance #gc
Adamsitnik
Span
tl;dr Use Span to work with ANY kind of memory in a safe and very efficient way. Simplify your APIs and use the full power of unmanaged memory!
Contents
Introduction
Introduction
C# gives us great flexibility when it comes to using different kinds…
Contents
Introduction
Introduction
C# gives us great flexibility when it comes to using different kinds…
Sprite Glow/Outline Shader Breakdown in the Shader Graph
https://cyangamedev.wordpress.com/2020/03/13/sprite-glow-outline-shader-breakdown/
#shader #graph #glow #outline
https://cyangamedev.wordpress.com/2020/03/13/sprite-glow-outline-shader-breakdown/
#shader #graph #glow #outline
Cyan
Sprite Glow/Outline Shader Breakdown
I’ve moved to a new site!An updated version of this post can be found here, with no ads : Intro This shader uses a signed distance field (SDF), stored in the alpha channel of the sprite’…
Using Unity’s ShaderVariantCollection
Typical use of ShaderVariantCollection is to record the shader variants used during a play session from the editor (under Graphics Settings), save them out as an asset, and add to the list of preloaded shaders (again in Graphics Settings). Additionally, you could call WarmUp on a ShaderVariantCollection object manually.
https://asmaloney.com/2020/01/code/using-unitys-shadervariantcollection/
#shadercollection #shader #collection
Typical use of ShaderVariantCollection is to record the shader variants used during a play session from the editor (under Graphics Settings), save them out as an asset, and add to the list of preloaded shaders (again in Graphics Settings). Additionally, you could call WarmUp on a ShaderVariantCollection object manually.
https://asmaloney.com/2020/01/code/using-unitys-shadervariantcollection/
#shadercollection #shader #collection
World space UVs & Triplanar Mapping
This post includes an introduction to using the Position node to sample textures rather than using mesh UV channels, which is also the basis of Triplanar mapping. It won’t be super in-depth but will provide some example graphs to (hopefully) help beginners understand how this could be used!
https://cyangamedev.wordpress.com/2020/01/28/worldspace-uvs-triplanar-mapping/
#shader #graph #worldspace #uv #triplanar
This post includes an introduction to using the Position node to sample textures rather than using mesh UV channels, which is also the basis of Triplanar mapping. It won’t be super in-depth but will provide some example graphs to (hopefully) help beginners understand how this could be used!
https://cyangamedev.wordpress.com/2020/01/28/worldspace-uvs-triplanar-mapping/
#shader #graph #worldspace #uv #triplanar
Cyan
World space UVs & Triplanar Mapping
This post includes an introduction to using the Position node to sample textures rather than using mesh UV channels, which is also the basis of Triplanar mapping. It won’t be super in-depth but wil…
Triplanar Mapping Texturing Arbitrary Surfaces
More in-depth article about triplanar mapping using shaders instead of the shader graph.
The usual way to perform texture mapping is by using the UV coordinates stored per-vertex in a mesh. But this is not the only way to do it. Sometimes, there are no UV coordinates available. For example, when working with procedural geometry of arbitrary shapes. When creating a terrain or cave systems at run-time, it usually isn't feasible to generate UV coordinates for an appropriate texture unwrap.
https://catlikecoding.com/unity/tutorials/advanced-rendering/triplanar-mapping/
#shader #triplanar
More in-depth article about triplanar mapping using shaders instead of the shader graph.
The usual way to perform texture mapping is by using the UV coordinates stored per-vertex in a mesh. But this is not the only way to do it. Sometimes, there are no UV coordinates available. For example, when working with procedural geometry of arbitrary shapes. When creating a terrain or cave systems at run-time, it usually isn't feasible to generate UV coordinates for an appropriate texture unwrap.
https://catlikecoding.com/unity/tutorials/advanced-rendering/triplanar-mapping/
#shader #triplanar
Catlikecoding
Triplanar Mapping
A Unity Advanced Rendering rendering tutorial about triplanar texture mapping.
Four Color Gradient
Clean way to create a 4 color gradient by lerping 2 colors a time and then lerping the result by another axis once more.
https://mitchmcclellan.com/four-color-gradient/
#gradient #shader
Clean way to create a 4 color gradient by lerping 2 colors a time and then lerping the result by another axis once more.
https://mitchmcclellan.com/four-color-gradient/
#gradient #shader
Mitchmcclellan
Four Color Gradient
Breakdown of a shader replicating one of my favorite effects in After Effects, the 4-Color Gradient.
Integrate asset delivery (Unity) | Android Developers
https://developer.android.com/guide/playcore/asset-delivery/integrate-unity
#asset #delivery #android
https://developer.android.com/guide/playcore/asset-delivery/integrate-unity
#asset #delivery #android
Android Developers
Integrate asset delivery (Unity) | Other Play guides | Android Developers