所以我将CardboardAppController.h的内容粘贴到SVAppController.h,将CardboardAppController.mm的内容粘贴到SVAppController.mm( Make sure to change the names in the code replace CardboardAppController by SVAppController )
然后将MMTAppController.mm的内容复制到SVAppController.mm in the right place
最后删除CardboardAppController和MMTAppController .
您将留下1个app控制器,一切都应该正常工作 .
供参考这是我的最终SVAppController:
SVAppController.h
#import "UnityAppController.h"
#import "UnityAppController+Rendering.h"
#import "UnityAppController+ViewHandling.h"
// Unity 4.6.2 added a category to the app controller.
#if UNITY_VERSION < 462
#import "UnityInterface.h"
#else
#import "UnityAppController+UnityInterface.h"
#endif
// Unity 4 used a different method name to create the UnityView.
#if UNITY_VERSION < 500
#define createUnityView initUnityViewImpl
#endif
@interface SVAppController : UnityAppController
- (void)preStartUnity;
- (UnityView *)createUnityView;
- (void)startSettingsDialog:(UIViewController *)dialog;
- (void)stopSettingsDialog;
- (void)pause:(bool)paused;
- (void)shouldAttachRenderDelegate;
@end
2 回答
我终于解决了它 .
我们必须删除CardboardAppController和MMTAppController并将它们合并为一个 .
基本上在Assets / Plugin / ios中有2个AppControllers:“CardboardAppController.mm”(也有一个CardboardAppController.h头)和“MMTAppController.mm”
诀窍是ios只在生成后“看到”一个app控制器 . 由于CardboardAppController是第一个,因此丢弃了MMTAppController .
To solve this issue I have done the following:
创建新的AppController:在我的例子中,它被命名为SVAppController.mm和SVAppController.h
然后我们必须将app控制器合并到那个并删除它们 .
所以我将CardboardAppController.h的内容粘贴到SVAppController.h,将CardboardAppController.mm的内容粘贴到SVAppController.mm( Make sure to change the names in the code replace CardboardAppController by SVAppController )
然后将MMTAppController.mm的内容复制到SVAppController.mm in the right place
最后删除CardboardAppController和MMTAppController .
您将留下1个app控制器,一切都应该正常工作 .
供参考这是我的最终SVAppController:
SVAppController.h
SVAppController.mm
Unity中的电影通常在对象上呈现为纹理 . 在移动设备上,问题变得设备只想在视频播放器中显示视频,因此不支持Unity类MovieTexture .
我正在成功绕过这一点,并使用Unity资源商店中名为Easy Movie Texture的Unity插件在球体内部成功渲染360视频 .
在Mac上工作,这就是我所做的:
从Unity资源商店下载Easy Movie Texture插件
从Assets / EasyMovieTexture / Scene打开Demo Sphere演示场景
为项目创建一个新的(空)预制件,并将Sphere GameObject从Demo Sphere场景拖到预制件上 .
重新打开Cardboard场景并将新的videosphere预制件拖动到层次结构中 .
在Quicktime中打开源360视频
文件 - >导出 - > 720p
将文件扩展名从'.mov'更改为'.mp4'
将新的mp4文件拖到项目的Assets / Streaming Assets目录中 . 注意:不要通过菜单系统导入,因为这会强制Unity转换为OGG .
在您的videosphere GameObject的"Media Player Ctrl"脚本组件上,找到"Str_File_Name"字段并提供新导出的视频文件的FULL文件名 . 确保将扩展名包含在字符串"mymovie.mp4"中 .
很确定这就是一切 . 希望它可以帮助其他人坚持这个问题 .
最后请注意,视频只会在设备上呈现 . 在编辑器中,您只会在球体上看到白色纹理 . 您必须发布到设备才能看到令人敬畏的360视频 .