gpt4 book ai didi

ios - 使用 Storyboard自定义 Unity3D Xcode 项目

转载 作者:行者123 更新时间:2023-12-02 01:31:48 25 4
gpt4 key购买 nike

我是 Unity3D 的新手。我的要求是在 iOS native 应用程序之间有游戏屏幕(由 Unity3D 构建)。我已经编写了 .mm 以便子类化 UnityAppController.mm

#import <UIKit/UIKit.h>
#import "UnityAppController.h"

@interface TNAppController : UnityAppController

- (void)createViewHierarchyImpl;

@end

@implementation TNAppController

- (void)createViewHierarchyImpl {

UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"Storyboard" bundle:nil];
UIViewController *mainVC = [storyBoard instantiateInitialViewController];
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.rootViewController = mainVC;
_rootController = [self.window rootViewController];
_rootView = _rootController.view;
}

@end

IMPL_APP_CONTROLLER_SUBCLASS(TNAppController)

但是当我尝试分配 _rootView 时出现以下错误。

2015-01-29 18:21:53.298 ProductName[548:60b] -> registered mono modules 0x136b0c0 -> applicationDidFinishLaunching() Mono path[0] = '/var/mobile/Applications/A7836E0B-2F4B-4704-B359-63A7C860CB07/ProductName.app/Data/Managed' Mono config path = '/var/mobile/Applications/A7836E0B-2F4B-4704-B359-63A7C860CB07/ProductName.app/Data/Managed' -> applicationDidBecomeActive() Requesting Resolution: 640x1136 Renderer: PowerVR SGX 543 Vendor: Imagination Technologies Version: OpenGL ES 2.0 IMGSGX543-97 GL_OES_depth_texture GL_OES_depth24 GL_OES_element_index_uint GL_OES_fbo_render_mipmap GL_OES_mapbuffer GL_OES_packed_depth_stencil GL_OES_rgb8_rgba8 GL_OES_standard_derivatives GL_OES_texture_float GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_vertex_array_object GL_EXT_blend_minmax GL_EXT_color_buffer_half_float GL_EXT_debug_label GL_EXT_debug_marker GL_EXT_discard_framebuffer GL_EXT_draw_instanced GL_EXT_instanced_arrays GL_EXT_map_buffer_range GL_EXT_occlusion_query_boolean GL_EXT_pvrtc_sRGB GL_EXT_read_format_bgra GL_EXT_separate_shader_objects GL_EXT_shader_framebuffer_fetch GL_EXT_shader_texture_lod GL_EXT_shadow_samplers GL_EXT_sRGB GL_EXT_texture_filter_anisotropic GL_EXT_texture_rg GL_EXT_texture_storage GL_APPLE_copy_texture_levels GL_APPLE_framebuffer_multisample GL_APPLE_rgb_422 GL_APPLE_sync GL_APPLE_texture_format_BGRA8888 GL_APPLE_texture_max_level GL_IMG_read_format GL_IMG_texture_compression_pvrtc Creating OpenGLES2.0 graphics device Initialize engine version: 4.6.1f1 (d1db7a1b5196) Begin MonoManager ReloadAssembly - Completed reload, in 0.072 seconds

按照http://www.the-nerd.be/2014/08/06/add-unity3d-in-a-native-ios-application/中的教程进行操作

注意到,当涉及 UnityAppController.mm 中的transitionToViewController 方法时,_rootViewController 被垃圾收集,该方法会抛出错误访问。

有这方面的经验吗?

非常感谢!

最佳答案

这段代码对我来说工作得很好:

#import <UIKit/UIKit.h>
#import "UnityAppController.h"
#import "UI/UnityView.h"
#import "UI/UnityViewControllerBase.h"

#import "TopViewController.h"

@interface TNAppController : UnityAppController

@property (nonatomic, strong) UINavigationController *navController;

- (void)willStartWithViewController;

@end

@implementation TNAppController
- (void)willStartWithViewController:(UIViewController*)controller {

UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UIViewController *mainVC = [storyBoard instantiateInitialViewController];

_rootController = [[UnityDefaultViewController alloc] init];
_rootView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
_rootController.view = _rootView;

//UnitySceneViewController *unityScene = [[UnitySceneViewController alloc] initWithNibName:nil bundle:nil];

self.navController = [[UINavigationController alloc] initWithRootViewController:mainVC];
[_rootView addSubview:self.navController.view];

/*
UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UIViewController *mainVC = [storyBoard instantiateInitialViewController];
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.rootViewController = mainVC;
_rootController = [self.window rootViewController];
_rootView = _rootController.view;
*/
}

@end

IMPL_APP_CONTROLLER_SUBCLASS(TNAppController)

关于ios - 使用 Storyboard自定义 Unity3D Xcode 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28215959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com