问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何在ios的xcode工程里面利用一个按钮单独启动unity3d

发布网友 发布时间:2022-07-03 02:52

我来回答

2个回答

热心网友 时间:2023-01-22 23:17

首先,我已经建好了我的u3d工程,包括模型,模型的移动、旋转等函数。。
然后,我导出一个xcode工程(版本:unity4.2.1、xcode5)。。。
如图:
这是unity导出来的xcode工程的目录结构。
接下来:
第一步:选择UnityAppController.mm这个文件打开。
并在int OpenEAGL_UnityCallback(UIWindow** window, int* screenWidth, int* screenHeight, int* openglesVersion)
这个方法里面的
return true;之前加入
//创建一个全屏幕的window
CGRect rect=CGRectMake(0, 0, *screenWidth, *screenHeight);
*window=[[UIWindow alloc] initWithFrame:rect];
[*window makeKeyAndVisible];

GLView * view=[[GLView alloc] initWithFrame:rect];
[*window addSubview:view];
[view release];

MyViewController *myView=[[MyViewController alloc] init];
[*window addSubview:myView.view];
[myView release];
其中:MyViewController是导出工程后,手动新建的类,目的是,在这个ViewController种控制u3d模型的旋转、移动等动作。
第二步:创建MyViewController并添加按钮,启动u3d
- (void)viewDidLoad {
[super viewDidLoad];
//创建label视图
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 40)];
//设置显示内容
label.text = @"雨松MOMO的程序世界";
//设置背景颜色
label.backgroundColor = [UIColor blueColor];
//设置文字颜色
label.textColor = [UIColor whiteColor];
//设置显示位置居中
label.textAlignment = UITextAlignmentCenter;
//设置字体大小
label.font = [UIFont fontWithName:[[UIFont familyNames] objectAtIndex:10] size:20];

//创建按钮
UIButton *button0 = [UIButton buttonWithType:1];
//设置按钮范围
button0.frame = CGRectMake(0, 40, 100, 30);
//设置按钮显示内容
[button0 setTitle:@"矩形左旋转" forState:UIControlStateNormal];
//设置按钮改变后 绑定响应方法
[button0 addTarget:self action:@selector(LeftButtonPressed) forControlEvents:UIControlEventTouchUpInside];

//创建按钮
UIButton *button1 = [UIButton buttonWithType:1];
//设置按钮范围
button1.frame = CGRectMake(0, 100, 100, 30);
//设置按钮显示内容
[button1 setTitle:@"矩形右旋转" forState:UIControlStateNormal];
//设置按钮改变后 绑定响应方法
[button1 addTarget:self action:@selector(RightButtonPressed) forControlEvents:UIControlEventTouchUpInside];

//创建按钮
UIButton *button2 = [UIButton buttonWithType:1];
//设置按钮范围
button2.frame = CGRectMake(0, 160, 100, 30);
//设置按钮显示内容
[button2 setTitle:@"矩形上旋转" forState:UIControlStateNormal];
//设置按钮改变后 绑定响应方法
[button2 addTarget:self action:@selector(UpButtonPressed) forControlEvents:UIControlEventTouchUpInside];

//创建按钮
UIButton *button3 = [UIButton buttonWithType:1];
//设置按钮范围
button3.frame = CGRectMake(0, 220, 100, 30);
//设置按钮显示内容
[button3 setTitle:@"矩形下旋转" forState:UIControlStateNormal];
//设置按钮改变后 绑定响应方法
[button3 addTarget:self action:@selector(DownButtonPressed) forControlEvents:UIControlEventTouchUpInside];

//向view添加
[self.view addSubview:label];
[self.view addSubview:button0];
[self.view addSubview:button1];
[self.view addSubview:button2];
[self.view addSubview:button3];
}

//向左按钮
-(void)LeftButtonPressed{

UnitySendMessage("Cube","MoveLeft","");
}

//向右按钮
-(void)RightButtonPressed{
UnitySendMessage("Cube","MoveRight","");
}
//向上按钮
-(void)UpButtonPressed{
UnitySendMessage("Cube","MoveUp","");
}

//向下按钮
-(void)DownButtonPressed{
UnitySendMessage("Cube","MoveDown","");
}

- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];

// Release any cached data, images, etc. that aren't in use.
}

- (void)viewDidUnload {
[super viewDidUnload];
}

- (void)dealloc {
[super dealloc];
}
第三步:修改Bundle Identifier,进行真机测试
到此,代码部分全部搞定。接下来是真机,等待运行...
艰难的运行中,大约两分钟...
u3d的开机画面出来了,刷一下,进入到了你添加的界面,里面有几个按钮,分别是控制模型旋转的。
此时,看上去一切都很顺路,轻轻的,点一下,其中一个按钮。。。。问题出了。。崩溃。。。
悲剧的崩溃。。。
控制台输出了一大堆错误。
错误如下:

2014-01-09 11:50:55.863 ProctName[3340:907] -> registered mono moles 0xfd4610
-> applicationDidFinishLaunching()
-> applicationDidBecomeActive()
Mono path[0] = '/var/mobile/Applications/AA64800A-19C5-4CC9-8CF9-B00ACD24A100/ProctName.app/Data/Managed'
Mono config path = '/var/mobile/Applications/AA64800A-19C5-4CC9-8CF9-B00ACD24A100/ProctName.app/Data/Managed'
2014-01-09 11:50:57.289 ProctName[3340:907] 2
Renderer: PowerVR SGX 535
Vendor: Imagination Technologies
Version: OpenGL ES 2.0 IMGSGX535-73.16.1
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_vertex_array_object GL_EXT_blend_minmax GL_EXT_debug_label GL_EXT_debug_marker GL_EXT_discard_framebuffer GL_EXT_map_buffer_range GL_EXT_read_format_bgra GL_EXT_separate_shader_objects GL_EXT_shader_framebuffer_fetch GL_EXT_shader_texture_lod GL_EXT_texture_filter_anisotropic 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.2.1f4 (4d30acc925c2)
Begin MonoManager ReloadAssembly
Platform assembly: /var/mobile/Applications/AA64800A-19C5-4CC9-8CF9-B00ACD24A100/ProctName.app/Data/Managed/UnityEngine.dll (this message is harmless)
Loading /var/mobile/Applications/AA64800A-19C5-4CC9-8CF9-B00ACD24A100/ProctName.app/Data/Managed/UnityEngine.dll into Unity Child Domain
Non platform assembly: /private/var/mobile/Applications/AA64800A-19C5-4CC9-8CF9-B00ACD24A100/ProctName.app/Data/Managed/Mono.Security.dll (this message is harmless)
Non platform assembly: /private/var/mobile/Applications/AA64800A-19C5-4CC9-8CF9-B00ACD24A100/ProctName.app/Data/Managed/System.dll (this message is harmless)
Platform assembly: /var/mobile/Applications/AA64800A-19C5-4CC9-8CF9-B00ACD24A100/ProctName.app/Data/Managed/Assembly-UnityScript.dll (this message is harmless)
Loading /var/mobile/Applications/AA64800A-19C5-4CC9-8CF9-B00ACD24A100/ProctName.app/Data/Managed/Assembly-UnityScript.dll into Unity Child Domain
- Completed reload, in 0.182 seconds
The referenced script on this Behaviour is missing!

(Filename: Line: 1657)

The referenced script on this Behaviour is missing!

(Filename: Line: 1657)

热心网友 时间:2023-01-23 00:35

在按钮的点击事件里面添加启动unity3d的点击事件
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
电脑lol突然很卡怎么办啊电脑玩lolfps低怎么解决 危化品仓库有什么设备 香港中文大学2021-2022在河北,重庆最低录取分数线 ChaCheer 洽洽 南瓜子 盐焗味 500g-适用对象 老闫家小粒香南瓜子-适用对象 洽洽盐焗味南瓜子-适用对象 盐焗南瓜子里有添加明矾吗 老街口盐焗味南瓜子500g*2袋量大优惠休闲零食 一天走多少步可以减肥每天走多少步可以减肥 肉炖土豆需要炖多久时间 诗句是什么啊! unity怎么用xcode编程 unity3d导出的xcode工程怎么覆盖 unity导出的xcode工程怎么添加原生控件 如何将四进制数10231(4)转化为十进制数? 银行代发工资时多发了后又冲账了银行流水怎么记 谁知道,农业银行。个人怎么贷款,我的工资卡在农业银行代发工资,具体条件。高额奖励 梦见老婆生了一条蟒蛇后来被我打跑了 梦到老婆怀的蛇是什么意思? 昨天迷迷糊糊的做了个梦··梦见我老婆生了一条小蛇·我老婆再有半个月左右脚要生孩子了`` 梦见老婆生了条蛇 金菊千里光洁美洗液白天可以用吗?有的多了有没有副作用? *炎Ⅲ,白细胞Ⅱ,杂菌 ,革兰氏阴性双球菌细胞外见。感觉心里很害怕,有什么办法能尽快的治愈? 得了宫颈糜烂怎么办?用金菊千里光洁美洗液调理效果好不好 金菊千里光洁美洗液主要是治疗哪些妇科病的?对哪种妇科炎症比较管用 金菊千里光洁美洗液效果如何 长武县新农合西安交大一附院农合报销比例- 问一问 在西安红会医异地就医骨水泥手术新农会大约报捎百分比是多少? 巴马西安新农合报销比例 OFFICE2007 产品密钥 福永镇有什么好玩的地方 我的微信忘记密码了,是以前的手机号,现在停用了,我该怎么找回密码啊! 木纹间隔500px是多少厘米 500PX和500厘米是一样的吗? 科目二S道以什么为参照物 2200×4500px是多少厘米 伊州歌这首诗表达了诗人怎样 伊州歌诗中表达了哪些情感 我需要网上本科学历认证,网上学历认证网址是什么? 微星Z270 KRAIT GAMING主板可以装I5 6500吗 微星z270itx用哪些处理器 微星Z270M 能用8700K吗? 腾势电动车卖多少钱? 微星z270-apro用什么cpu 想买辆电动车,市场上的电动车都多少钱啊? 腾势转向灯灯罩坏了多少钱一个? 腾势电动车以租代购,做为网约车!求懂的人士分析,每月需按月交多少钱!三年期,到期车过户给乙方 香灯伴残萝,楚国在天涯 是哪首诗?下句是什么?是谁写的?哪个朝代的? 跪求大师选择结婚吉日。时间定于2022年阳历7月份星期六或者星期天 这部魔法少女小圆的同人漫画谁有,有的请发给413565015@qq.com,如果还有其他的小圆的同人漫画的话也发给我