unity中游戏停止unity 运行时间报错的问题怎么解决

主题 : unity构建出来的xcode项目报错
级别: 新手上路
可可豆: 234 CB
威望: 234 点
在线时间: 26(时)
发自: Web Page
来源于&&分类
unity构建出来的xcode项目报错&&&
最近刚开始学unity3d,安装了mac版的unity3d 4.1.5的pro版破解版。在unity中构建出来的xcode项目可以在iphone虚拟机中运行,但是在真机中运行的时候,总是在开机画面出现几秒之后,就弹出同一个错误。本人新手,面对这种错误毫无抵抗之力,测试了好多遍,已经崩溃了好几回了,求高手相助啊~~~~就算看不出来是什么错误,也请告诉我xcode遇到这种没有什么提示,只有很多错误堆栈出现的问题要怎么找错误呢????另外还有一个奇怪的现象,每次unity的工程导出xcode项目之后,只要是用真机运行的,第一次运行总是会弹出臭名昭著“could not launch XXX”的错误,还需要我重启mac才可以在真机上做测试。究竟是怎么回事呢???下面是错误截图的链接。
级别: 新手上路
可可豆: 234 CB
威望: 234 点
在线时间: 26(时)
发自: Web Page
这个帖子发表之后我等了一个月了,最后我用了macbook来测试,居然可以在手机上运行。也就是说,虚拟机中运行unity3D,导出的xcode项目,是不能在真机做测试的,只能在虚拟机中做测试。遇到类似困惑的朋友,可以考虑停止再做类似的测试了。
级别: 精灵王
UID: 41480
发帖: 2126
可可豆: 2717 CB
威望: 3160 点
在线时间: 1396(时)
发自: Web Page
回 1楼(baken99) 的帖子
虚拟机?是指模拟器吗?还是***?
------------------------------------------------------------------------源码分享:
级别: 侠客
可可豆: 522 CB
威望: 502 点
在线时间: 49(时)
发自: Web Page
回 楼主(baken99) 的帖子
Unity导出的时候在 PlayerSetting( File-&Build Seeting-&PlayerSetting) 中找到 Other Settings 看看 SDK Version 有DeviceSDK 和Simulator的;试试用DeviceSDK导出这个才能在设备上跑。
=================企鹅:xxEmail:========Mac 10.9+  win 8.1 x64=======
级别: 新手上路
UID: 308137
可可豆: 22 CB
威望: 14 点
在线时间: 62(时)
发自: Web Page
请问楼主,unity3d导出的xcode项目只能真机测试吗?为什么导出的xcode项目中找不到模拟器呢?小弟刚接触这个,还望楼主不吝赐教,谢谢。
关注本帖(如果有新回复会站内信通知您)
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 关注CVP公众号
扫一扫 浏览移动版5257人阅读
Unity(112)
今天刚刚写完异步Socket客户端的数据收发,在进行测试的时候,Unity报出错误:
CompareBaseObjectsInternal can only be called from the main thread.
详情如下:
ERROR : CompareBaseObjectsInternal can only be called from the main thread. Constructors and field initializers will be executed from the loading thread when loading a scene. Don't use this function in the constructor or field initializers, instead move initialization code to the Awake or Start function.
在Unity3d官方论坛有网友请教了这个问题
/questions/704284/comparebaseobjectsinternal-can-only-be-called-from-1.html
答案如下:
Seems like you must be calling Unity specific functions from another thread, compare gameobjects means you are checking if one gameobject equals another, apparently this is not threadsafe, so you would need to make sure your separate thread does NOT interract with Unity functions at all.
翻译过来就是说:
在Unity中需要遵循C#的线程安全,不能在另外的线程对Unity的GameObject进行相等比较操作。
在我的工程中,当Socket BeginConnect的时候就会 调用WindowManager来显示一个等待界面
当Connect Success或者failed的时候,就会关闭。
显示界面是在Unity线程中执行
关闭界面是在Socket的异步回调中执行
从Mono的断点来看这两个不是同一个线程。
因为在Wait.GetSingleton().Close() 中有用到WindowManager.GetSingleton()
public static CCWindowManager GetSingleton()
if(m_sInstance==null)
//Helper.LogError(&CCWindowManager m_sInstance==nul&);
GameObject obj = new GameObject(&CCWindowManager&);
m_sInstance=obj.AddComponent&CCWindowManager&();
return m_sI
所以在判断 m_sInstance == null 的时候出现了错误。
解决方法:
将关闭等待界面的代码移到了Update中。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1193357次
积分:15447
积分:15447
排名:第776名
原创:331篇
转载:108篇
评论:279条
文章:32篇
阅读:111783
(4)(1)(1)(2)(1)(1)(5)(1)(3)(3)(3)(5)(6)(4)(7)(1)(18)(18)(17)(13)(9)(24)(25)(2)(7)(5)(9)(17)(11)(7)(25)(8)(9)(1)(4)(12)(6)(2)(3)(16)(21)(10)(14)(1)(7)(25)(11)(6)(13)(4)(8)(7)(2)4被浏览331分享邀请回答0添加评论分享收藏感谢收起0添加评论分享收藏感谢收起运行时出现如下错误信息:应用程序错误: 应用程序无法正常启动(0xc000007b)。请单击&确定&关闭应用程序。
解决方法:删除windows/system32目录下的msvcr120.dll文件,重新安装Microsoft Visual C++ 可再发行组件包(for Visual Studio 2013)
可以在这里下载:
微软官方下载地址:
对于Oculus Rift程序的其它错误可以参考我的另一篇博文:
您还没有登录,请或总结Unity 初学者容易犯的编译与运行时错误(第二部分)
时间: 22:39:02
&&&& 阅读:172
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&&&&&&& 本人在做线上与线下Unity教学中,经常遇到一些常见的疑问,为了更好的快速进行答复,我平时注意收集了一些典型的错误与疑问,且附有个人解答,供大家交流之用。不足之处,请大家指明。&&& 如果后期总结的易错误点,量比较大时我会进行分类处理,更加方便大家查询。&1: Ngui 和 UGUI 用法是一样的么?现在游戏公司还在用NGUI 还是用Unity内置的UI系统?答: 如果你是Unity学习者,建议你NGUI/uGUI都学习,因为目前旧项目一般都用NGUI, 现在立项的公司很多考虑用uGUI ,毕竟第1是官方技术且是开源的技术,而是后继会不断发展,有潜力。&&2: unity3d的 Terrain上无法烘焙树木的阴影,该如何解决?答:Detail meshes 本身不参与烘焙过程,但是其会对地形的lightmap进行采样。所以,需要对原生的lightmap进行修改,添加阴影。&&3: uGUI 中 slider和scorllbar这么相似,分别用在那些地方啊?答:解释如下: Slider 控件适合做项目中的“音量调节”、“生命数值”显示等方面,注重数值展示方面。ScrollBar 控件一般不建议单独使用,属于“基础性”控件,适合与其他控件组合成功能更加强大的“复合控件”,例如我在视频中讲解的“ScrollRect”控件。(作为用户选择部分)&&4:& unity做个项目,安装在手机上运行一会卡死,都不知道从哪里入手找bug,求各位大神帮忙。。。答:你自己开发一个移动设备上的找Bug的机制: 如下操作: 第1: 使用Application.persistentDataPath 作为保存数据的路径。 自己写一个调试类 (例如: Debuger.cs) 第2:把需要在程序中切入的调试代码,最终写入txt 文件(或者XML文件) 第3: 在手机死机后,没有关系。重新进入后,进入自己开发的一个专门显示txt 或者XML 中内容的页面,查看程序运行到哪里,最终找到原因。这种机制原理,适用于所有的移动平台的调试。&&5 this.gameObject.transform.position= new Vector3(1F, 2F, 3F); 老师,gameObject和transform,position都是属性,他们之间怎么能引用呢,不是应该通过对象和类来引用的吗?答:transform 是GameObject 的属性。 而GameObject是不能直接应用 transform 的,没有这个静态属性。(Unity规定)。 所以我们通过this.gameObject. 。 获得这个脚本所在对象(返回GameObject).然后再获取transform。&&6: uGUI 中 老师,我怎么拉不动那中心点,总是拉着整个button或text?答:你拉不动那个中心点,原因是Unity快捷栏中的“Center”在起作用,它保证中线点就一直在控件的中心位置。 所以请把“Center”点击改为“Pivot”就可以移动控件中心点了。&&7: C# 有高内聚低耦合的概念吗?&答:"高内聚低耦合"是开发中的一个重要设计与开发原则,C#作为国际上最流行的开发语言之一,当然具备。 本质上其实与语言无关,这是一种开发的宗旨、思想。&&8: unity5 可以使用visualstudio 开发代码,哪可以使用Eclipse开发吗?答:目前Unity 不支持Eclipse 作为代码编辑器插件开发项目。&&9: 数组定义好长度之后,想要改变长度怎么办?答:数组的特点就是,一点定义了长度,就不能更改。如果你要用可变长数组,就学习“Unity编程基础篇”,里面讲解了ArrayList集合。它的长度是可变的集合。其本质内部实现也是用数组,进行多个数组相互倒换实现的。&&10: 旋转的局部坐标系与世界坐标系的区别是什么?答:局部坐标旋转是指以父物体为参考,进行旋转。而世界坐标系以“坐标陀螺”来进行旋转。类似的情况例如:东、南、西、北、是世界坐标系。而前、后、左、右是局部坐标系&&11: uGUI 怎么改变Canvas的屏幕大小?答:两种方法:1:可以推进摄像机,如果是2D开发,则把摄像机的Size 设置的更小些。 2:可以使用代码方式对Canvas 的Scele 做缩放处理。&&12: 怎样保存游戏进度? Save 和 Load功能?答:保存游戏的进度本质就是数据持久化技术的应用。例如我视频中说的Unity提供的Playerfab 。可以把当前玩家的位置信息、状态(分数、血量、**)等保存且持久化即可。如果是复杂的大量数据保存,建议用XML作对象与XML的串行化。具体可以看看我下月发行的《Unity3d/2d 游戏开发零基础到精通》的,“数据持久化”章节有详细论述。&&13: 请问:我想通过脚本实现自定义换肤,如何实现比较好?如何利用Sprite Pakcer打包?答://动态追加控件 GameObject GoCloneObject = newGameObject("Button"); //添加精灵(外观处理) Image image= GoCloneObject.AddComponent&Image&(); Button btn =GoCloneObject.AddComponent&Button&(); image.overrideSprite=Resources.Load("Textures/Sprites/Emoticon - Frown", typeof(Sprite))as S以上代码可以实现动态生成控件,且自定义“换肤”。UGUI 中严格来说,我们不需要“Sprite Pakcer打包 ”&&14: 用vs2013打开创建的C#脚本,调试的时候显示:无法直接启动带有类库输出类型的项目,请在此解决方案中添加一个引用库项目的可执行项目。将这个可执行项目设置为启动项目!我已经设置了那个启动项目,但是还是调试错误?答:是这样的。 VS只是我们写代码的工具,提供了类方法提示、方法高亮显示等功能。但是脚本的运行,还是需要运行Unity的Play 按钮的。&&15: 老师我的VS 是Blend forstudio2013,在unity编辑器设置为VS打开C#脚本时,报错打开的不是有效的项目,这该怎么办啊答:建议使用VS 2013(官方默认的是MonoDevelop)。你说的VS 版本可能不兼容。&&16: 老师,我在unity5.0里面,想播放动画,this.animation.play ();这样不行~答:API 有所更改。this.GetComponent&Animation&().Play();更多Unity5.0 内容API更新请首先看我博客: & 。&&17: text.rectTransform.rect.Set(0, 0, 417, 2*(j * 52.5f + 300));为什么没有效果呢?如果要设置text的hright属性要怎么办?答:这样定义:txt_Obj.rectTransform.sizeDelta = newVector2(200, 200);//改变宽度与高度。&&18: 老师,我问一个问题,我在game视图16:10 Portrait(10:16)的视图下运行游戏,场景里的物体运动都是正常的但是当我把game视图切换到free aspect的时候,场景里的运动物体就都有了“残影”,就像是屏幕没有刷新一样,这个是什么问题呢,我的摄像机用的是正交模式就像是屏幕不刷新了,每一帧都停留到了屏幕上?答:1: 这种情况,先考虑在你角色的背后,加一个背景贴图。2: ngui的图集打的不能太大。&&19: 老师,Unity中“预加载”什么意思,如何实现?答:&“预加载”一般分为两种情况:第1种情况: 转换场景的时候,我们可以使用异步场景加载的技术,来实现。目的是给玩家一个显示画面,在系统后台加载场景数据,等加载完毕,显示整个场景。代码举例如下:&&& public class ScenesLoading : MonoBehaviour{&&&&&&& public Slider&& Sli_P&&&&&&&&&&&&&&&&&& //调用进度条&&&&&&& private AsyncO&&&&&&&&&&&&&&&&&&&&& //异步对象&&&&&&& private float curP&&&&&&&&&&&&&&&&&&&&&&&& //当前进度&&&&&&&& void Start ()&&&&&&& {&&&&&&&&&&& StartCoroutine(loadScene());&&&&&&& }&&&&&&&& //异步读取场景&&&&&&& IEnumerator loadScene()&&&&&&& {&&&&&&&&&&& //async =Application.LoadLevelAsync(ConvertNames.SceneNames[GlobalParameterManager.LoadingScenesName]);&&&&&&&&&&&&&&&&&&&&&& async =Application.LoadLevelAsync(ConvertNames.GetInstance().ScenesToName(GlobalParameterManager.LoadingScenesName));&&&&&&&&&&& curProgress = async.&&&&&&&&&&&&&&&&&& }&&&&&&&& void Update()&&&&&&& {&&&&&&&&&&&&&&&&&&&&&&&& if (curProgress &= 1)&&&&&&&&&&& {&&&&&&&&&&&&&&& curProgress += 0.01f;&&&&&&&&&&& }&&&&&&&&&&& Sli_Progressbar.value =curP&&&&&&& }&&&& }&第2种情况:& 在同一场景中实现“预加载”。&如果一个场景非常庞大,势必要进行优化。优化最简单的思路可以如下:1&& 遮挡剔除。2&& LOD 层级细节。3&& “层消隐”处理&如果以上步骤还不明显的话,可以人为的把整个大场景,划分为几个部分,当“角色”(主角)要进入一块“区域”的时候,可以提前3-20秒进行场景的加载,当“角色”离开这片区域时,我们则可以销毁这片“区域”,以节省计算机或者移动端设备的内容空间。 这就是“预加载”技术。核心代码如下:&&&&&&& void Start()&&&&&&& {&&&&&&&&&&&& //启动加载大型建筑模型&&&&&&&&&& StartCoroutine("LoadBigBuilding");&&&&&&& }&&&&&&&&&&&&&&&&&&&& //本场景进入若干秒后,启动“预加载”大型场景&&&&&&& IEnumerator LoadBigBuilding()&&&&&&& {&&&&&&&&&&& yield return newWaitForSeconds(intLoadTime);&&&&&&&&&&& GameObjectgoBuilding_A=Resources.Load("Prefabs/Scenes_A") as GameO&&&&&&&&&&& GameObject goCloneBuildingA =GameObject.Instantiate(goBuilding_A, Vector3.zero, Quaternion.identity) asGameO&&&&&&& }&&20:& 刘老师,There are 2 audio listeners in the scene. Please ensure there is always exactly one audio listener in the scene.控制台的消息怎么删除,不出现这个答: 这个警告信息告诉我们,场景中存在了2个“音频监听器”,这是Unity不允许的。 解决方法很简单,你只需要把其中一个摄像机的监听给禁止即可。例如下图:&&&&&21:角色控制器能不能触发OnTriggerEnter等方法?答:角色控制器(CharacterController)不能应用OnTriggerEnter 等方法,如果需要检测CC(CharacterController),需要对方通过名称或者Tag来触发检测。如果需要CC给刚体施加“力”,可以用& OnControllerColliderHit() 方法实现。&(关于其他更多的初学者常见Unity疑问与解答,后面还会继续总结,敬请期待.)&&&&本文出自 “” 博客,请务必保留此出处标签:&&&&&&&&&&&&
&&国之画&&&& &&&&chrome插件&&
版权所有 京ICP备号-2
迷上了代码!}

我要回帖

更多关于 unity animator 停止 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信