Using Spotify Android SDK in Unity

Unity 2022.3.14f1 + spotify-app-remote-release-0.8.0

Seeing there is no tutorial about this and I’ve been recently playing with this so hopefully this would help someone like myself 🙂

In my case I’m using AppRemote only as I only want to grab Spotify’s current playing track information on my Android app + trigger song playing. If you are also going to use the Spotify Android SDK, make sure you have installed latest Spotify app on your Android device.

  1. Unity Project Setup
  2. Install Spotify Android SDK
  3. From and to Unity C# script and Java
  4. Spotify Android Media Notifications
Continue reading “Using Spotify Android SDK in Unity”

URP and GPU instancing & MPB

Tested with: 2020.1.0b16.4138 + URP 9.0.0-preview.38, Windows DX11

Objects with same material & same property values

SRP batcher ON
material GPU instancing OFF
SRP batched
SRP batcher ON
material GPU instancing ON
SRP batched
(because if SRP batcher is ON, gpu instancing will be ignored)
SRP batcher OFF
material GPU instancing ON
GPU instanced

Objects with different material & different property values

SRP batcher ON
material GPU instancing OFF
SRP batched
SRP batcher ON
material GPU instancing ON
SRP batched
(because if SRP batcher is ON, gpu instancing will be ignored)
SRP batcher OFF
material GPU instancing ON
Not batched nor instanced
(expected because they are different materials)

Objects with same material & different property values set by MaterialPropertyBlock

SRP batcher ON
material GPU instancing OFF
Not batched nor instanced
(because MPB values are not same)
SRP batcher ON
material GPU instancing ON
Not batched nor instanced
(same as above)
SRP batcher OFF
material GPU instancing ON
Not batched nor instanced
(because properties are non-instanced)

According to Unity Documentation about GPU instancing, user can use MaterialProperyBlock to have different material properties for each instances.
Apparently the test showed that this is not true anymore in Universal Render Pipeline.


Reason:

URP shader properties are all wrapped by SRP batcher macros “CBUFFER_START(UnityPerMaterial)”.
GPU instancing need to use this macro “UNITY_INSTANCING_BUFFER_START(MyProps)”


Solution:

Continue reading “URP and GPU instancing & MPB”

Custom SceneView DrawMode

The beautiful scene is from the asset store package:
RPG Medieval Kingdom Kit by BEFFIO

Screen Shot 2018-06-28 at 21.43.05

Download : https://drive.google.com/open?id=1hloorB11hPcIXIIKBIRzqvon9mpmbYPK
If you are looking for doing it in custom SRP, please visit my github

How to use :
Just add your shaders and names to the CustomDrawModeAsset

Thanks Vlad Neykov for helping me in making this little tool
( This is one of the tools I made during #UnityHackweek )

[Custom SRP] How to use Unity features?

Update:

If you are using 2019.1+, you might notice there is a big change to the SRP APIs.
I’ve created a new repository and you can grab here. Much cleaner and minimal.

https://github.com/cinight/CustomSRP

 


 

May-14-2018 gif

Screen Shot 2018-06-02 at 22.16.24

SRPFlowScreen Shot 2018-05-12 at 18.52.43

(My playground pipeline)

Here lists out exact what codes enable the Unity feature when making our custom SRP.

*Note that my codes may not be perfectly optimised, but the concept itself won’t change.
(!) Alert: Below information might be outdated. I stopped updating this note after 2018.x releases.

Indicators:
icon_script In pipeline code
icon_shader In shader code
✅ Doesn’t need to specifically care about it in codes. Write the codes as usual.

Continue reading “[Custom SRP] How to use Unity features?”

A change for blogging

I havn’t been authoring any post for years as I had moved to United Kingdom in 2016, which is definitely a big change in my life and I enjoyed so much.

I’m working in Unity now and found that I gain new knowledge EVERYDAY.

To tackle the knowledge wave, I used to keep links or upload pics to my personal fb and share with my fds in game industry. But I found that it’s limiting my content sizes and hard for me to trace the notes.

And for the blog here, the dark theme was too unclear and spaces are too small. So now I changed the theme to see how it goes 😀

 

So for now on, I hope to share the knowledge I gained and this blog would also serve as my own note.

 

I’m currently working on Shader tutorials which are having lots of pictures and simple description so that people who are new to Unity can learn the techniques as well as the software itself.

 

Learning would never stop!