Welcome to the Oculus Developer Forums!

Your participation on the forum is subject to the Oculus Code of Conduct.

In general, please be respectful and kind. If you violate the Oculus Code of Conduct, your access to the developer forums may be revoked at the discretion of Oculus staff.

Render Texture with OVR Overlay causes Invalid Cast Exception

moshangmusicmoshangmusic Posts: 4
I'm attempting to display my UI as a render texture using OVR Overlay. Whenever I assign a render texture in the OVR Overlay script and run, I get the following error "InvalidCastException: Specified cast is not valid.
OVROverlay.LatchLayerTextures () (at Assets/Oculus/VR/Scripts/OVROverlay.cs:453)
OVROverlay.LateUpdate () (at Assets/Oculus/VR/Scripts/OVROverlay.cs:903)"
Normal textures assigned to the script render fine in HMD. Are there any specific settings that the render texture needs to conform to?
This is in Unity 2018.4.2f1.


  • bmoodyP3bmoodyP3 Posts: 35
    Brain Burst
    I have also had this issue. Were you able to find out why this happens?
  • ForwardXP_JimForwardXP_Jim Posts: 3
    edited October 2019
    Also happens in 2019.1.2f1.

    Basically, when run in the editor, the OVROverlay.cs code tries to check the texture type and tries to convert a UnityEngine.NativeFormatImporter returned by UnityEditor.TextureImporter.GetAtPath to a UnityEditor.TextureImporter, which is apparently a bad cast.

    My solution has been to comment out the code in OVROverlay.cs.  I don't like modifying the SDK code, but there's so many warnings during a compile that I've resigned myself to it.  I don't think Oculus tests the SDK samples when they release the SDK.

  • ForwardXP_JimForwardXP_Jim Posts: 3
    You can fix this by changing line 459 from:
    var importer = (UnityEditor.TextureImporter)UnityEditor.TextureImporter.GetAtPath(assetPath);

    var importer = UnityEditor.TextureImporter.GetAtPath(assetPath) as UnityEditor.TextureImporter;
Sign In or Register to comment.