1. it's still undocumented!!! 2. it's still non typed, why use template variant? whats the profit of it if you still need to constantly cast? second something wrong with it by itself, i have code (executed from menu as menu item so only in editor and not during play): Code (CSharp): var myScriptableObject = new MyScriptableObject(); string assetPath = "pathToWhereToSave"; UnityEditor.AssetDatabase.CreateAsset(myScriptableObject, assetPath); m_SORefference = new AssetReferenceT<MyScriptableObject(UnityEditor.AssetDatabase.AssetPathToGUID(assetPath)); var test = m_SORefference.editorAsset as MyScriptableObject; //returns null, in case of cast throws exception why is it returning null? i can't see the reason....