Unity Difff Tool

Unity diff tool is a .net win form application developed using c# to find and display differences of two unity files in organised way.
Tool can be integrate in to perforce as custom diff tool for scene files also works for prefab, anim, material

Below video shows differences between two scene files GameRoom_Old (Old scene) and GameRoom (Latest scene)

Pink defines objects and properties are modified in latest scene.
Green defines objects and properties are added in latest scene.
Red defines objects and properties are removed in latest scene.

Unity Text Rendering Issue

Recently I have planned for a Telugu word game in unity and i have noticed that Unity text rendering system doesn’t work for some languages(Hindi, Telugu, Tamil etc..). The text looks broken, wrong order of alphabets and missing shapes etc...

Look into below image for better understanding.

 BrokenCorrect

This happens because unity doesn't read/apply glyph positions (GPOS) and glyph substitutes (GSUB) from font file.

GPOS and GSUB tables information is necessary for these languages to render text properly.

I have searched for a solution, but i couldn't find anything, So i thought to solve myself and tried some ideas.

Idea 1:

  1. Create a native plugin to read GPOS and GSUB tables from font files.
  2. Create a custom Text component  and uni scribe text as per language rules
  3. Apply GPOS and GSUB information and generate text mesh .

 

Pros: I can use downloaded TTF fonts, No need to create font asset.

Cons: Creating a native plugin is platform dependent.  I have to write for all platforms.

Idea 2:

  1. Create a custom font asset inside unity.
  2. Design font from scratch using sprites and store alphabet information in font asset.
  3. Create a custom Text component  and uni scribe text as per language rules.
  4. Read alphabets information from custom font asset and generate text mesh.

 

This idea is platform independent, But have to design font asset.

I followed the Idea no 2 and prepared flow charts

Click on the image to see full size.

IndicFontAsset

IndicTextComponent

 

 

Download Sample Telugu and Tamil Font:

IndicText

Here is the output.

"https://youtu.be/KnTtBFrI3d0"

 

 

There might be a better and easy solution for this issue, but for now this is the only idea i have. So i am using this for my upcoming game.