Forum Discussion

🚨 This forum is archived and read-only. To submit a forum post, please visit our new Developer Forum. 🚨
moshangmusic's avatar
moshangmusic
Explorer
7 years ago

Render Texture with OVR Overlay causes Invalid Cast Exception

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.

3 Replies

Replies have been turned off for this discussion
  • I have also had this issue. Were you able to find out why this happens?
  • 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.

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

    To:
    var importer = UnityEditor.TextureImporter.GetAtPath(assetPath) as UnityEditor.TextureImporter;