Tag: unity3d

Unity游戏引擎的语音识别

我已经成功实现了在Android上开发应用程序的目标,该应用程序使用Google API的语音识别function。 但事实是,我必须使用一个真正的游戏引擎,因为我的应用程序将是跨平台,并与一个非常丰富的用户界面和手势。 我正在考虑使用Unity Game Engine,我将把我的应用程序部署到iOS和Android平台。 所以…在网上search…我发现我不能在Unity Game Engine上使用Google语音识别API,因为它属于Google …这是真的吗? 你能给我一个如何实施这个build议吗? 第一个选项:实现第三方库或Unity Speech Recognition API。 那些? 第二个选项(这是可能的):模块化语音转换为文本的包,并通过dynamicreflection来调用它。 在Android部署上,使用Google API。 在iOS部署上,使用iOS API(Unkown也是如此)。 先谢谢你。

touchesMoved不定期地调用

我正在制作一款iOS游戏,主要是在屏幕上拖动大对象。 当我在实际的iPad / iPhone上运行游戏一段时间(持续在屏幕上拖动对象的圆圈)时,每隔5分钟左右拖动的对象就会全部结束约10-30秒 。 然后,它回到丝绸般光滑。 从表面上看,游戏的帧速率似乎下降到了15fps,但事实上,它一直在以60fps的速度运行。 不过,我注意到唯一不顺畅的是被拖动的对象 ,而游戏的其余部分都运行得非常顺利。 这让我相信口吃与iOS中的触摸input有关。 所以我开始看touchesMoved,看到它通常每16毫秒调用一次(所以触摸input以60 fps运行)。 到现在为止还挺好。 然后我注意到, 当对象开始口吃时,touchesMoved开始以奇怪的时间间隔被调用,在8毫秒和50毫秒之间波动很大。 所以,当触摸屏处于这种奇怪的状态时,有时touchesMoved会在前一次调用后的8毫秒内被调用,有时直到前一次调用后的50毫秒才会被调用。 当然,这使得被拖动的对象看起来全是断断续续的,因为它的位置是以不规则的间隔更新的。 你有什么想法是什么可能造成触摸移动停止被定期调用,如通常一样? 奖金: – 每当我倾斜屏幕强制屏幕方向改变时,大约70%的时间触摸屏进入上述状态touchesMoved开始被不规则地调用。 然后在10-20秒后恢复正常,再次看起来平滑。 – 我已经在两台iPad和两台iPhone(iOS 6和7)上试过了,这个问题出现在所有这些设备上。 – 使用OpenGLES视图来显示graphics。 它使用CADisplayLink同步到显示刷新率。 – 我用来testing这个的Xcode项目已经由unity3d游戏开发工具生成,但是我发现了几个非统一的游戏出现了相同的问题。 这似乎是一个全系统的问题。 注意我使用CFAbsoluteTimeGetCurrent测量objective-c中的CFAbsoluteTimeGetCurrent ,完全在统一之外。

错误:您不允许从游戏中删除Unity启animation面

我试图在Xcode中运行我的Unity游戏。 在Unity iOS播放器设置中configuration“Device SDK”时,一切正常。 但是,当我切换到“模拟器SDK”(使用iOS模拟器),在我的游戏启动Xcode中发生以下错误: 您正在使用Unity iPhone Basic。 您不允许从游戏中删除Unity启animation面。 由于这个错误,游戏在启动时崩溃。 我没有改变任何关于我的Unity播放器设置的启animation面。 那么这可能是什么原因呢? 我在Google上发现了一些关于这个错误的结果,但似乎没有任何帮助。 PS:我使用Unity 4.6.3和Xcode 6.1.1这些应该是最新的版本。

在iOS上使用C#的LINQ OrderBy的JIT错误

我在iOS设备上收到以下错误消息: ExecutionEngineException:试图JIT编译方法'System.Linq.OrderedEnumerable 1<System.Collections.Generic.KeyValuePair 2>:GetEnumerator()',而运行时使用 – 仅 – 只。 我正在使用Unity3D,而且我知道这个错误是由于LINQexpression式在编译Unity到iOS时对sorting值types有问题而引起的。 因为(我认为)expression式试图使用reflection来实例化一个实现IComparer <TKey>接口的新types。 这将适用于引用types,但不适用于Unity iOS构build的值types。 所以我的想法是,因为我知道在这种情况下,我总是试图订购一个整数集合。 我可以绕过通用的ICompare <TKey>,并创build自己的自定义比较器。 public class IntCompare : Comparer<int> { public override int Compare (int x, int y) { return x – y; } } 但是,使用OrderBy仍然给我错误。 有什么我不明白为什么我的方法不工作? 我的表情: OptimizeMaxCommitList(members .OrderBy((memberid) => memberid.Value, new IntCompare()) .Skip(1) .ToDictionary(pair => pair.Key, pair => pair.Value) ,maxCommit);

全新的Facebook SDK for Unity – 在iOS和Android上login时遇到问题

我已经下载了最新的SDK(3.1.2),并尝试将testing场景导出到iOS和Android。 FB.Init()button在两者上都能正常工作,但login一直给我带来悲伤。 当我build立到iOS,它popup我的浏览器内的login屏幕。 在我把细节放进去之后,它告诉我: 很抱歉,此function目前不可用:处理此请求时发生错误。 请稍后再试。 当我build立到Android,并login时,它要求我确认,我希望应用程序访问帐户function,然后引发此错误: NullReferenceException:在Facebook.AndroidFacebook.OnLoginComplete(System.String消息)[0x00000] in:0中未将对象引用设置为对象的实例 对话框选项在编辑器中打开,但是无论如何loginfunction是灰色的,所以我不能testing它。 以下是我迄今所做的一切: 在Facebook内创build一个应用程序。 将应用程序ID放置在Unity中的设置中。 在Facebook的编辑应用程序屏幕上填充了本机iOS应用程序和原生Android应用程序的各个部分。 从网站复制了Android的详细信息,并将其放置在Unity的设置中。 有一件事我没有做的是这一步: 仅适用于testing版 – 第3步:将您的Facebook联系人发送给您希望用于与Unity集成的应用程序ID。 Facebook有必要将他们列入白名单,以便访问Unity特定的集成选项。 这是为什么这些function不工作? 还是我完全错过了一些东西?

非托pipeC#调用静态库

我正在使用swig来生成一些C#代码库的基础上使用C#的包装。 当我运行swig时,它会生成一个包装器的c文件,将所有的function公开给生成的PInvoke C#文件…例如: // This is in KodLogic_wrap.c SWIGEXPORT void SWIGSTDCALL CSharp_DMGameMode_timeLimit_set(void * jarg1, unsigned short jarg2) { … } // This is in KodLogicPInvoke.cs [global::System.Runtime.InteropServices.DllImport("KodLogic", EntryPoint="CSharp_DMGameMode_timeLimit_set")] 当我构build一个dynamic库时,这很好用。 不过,我现在需要支持iOS,所以我准备了一个静态库,并通过-dllimport '__Internal'选项来-dllimport '__Internal'工作。 不幸的是,我得到的链接错误,如: "_DMGameMode_timeLimit_set", referenced from: RegisterMonoModules() in RegisterMonoModules.o (maybe you meant: _CSharp_DMGameMode_timeLimit_set) 的确,我的意思是“CSharp_DMGameMode_timeLimit_set”,但这是“入口点”参数的一点? 所以,由于这个错误是由Unity生成的Xcode项目抛出的,我不太确定失败的根源是什么。 它是否对静态库失败? 这是一个固定的统一或边上的东西? 更新:在深入挖掘之后,我想我对这里发生的事情有一点点的了解。 主要的问题似乎来自AOT编译器,它试图将所有CS代码编译到ARM程序集。 这似乎是iOS所需要的,所以在Unity的AOT编译期间,它会生成一个文件RegisterMonoModules.cpp ,它试图为本地代码定义访问函数。 RegisterMonoModules.cpp不尊重入口点参数,导致未定义的符号错误被抛出… 仍试图find一个适当的解决方法。

如何stream式传输/下载和播放来自URL的audio?

我需要在iOS上运行的Unity3D中stream式传输或下载播放从URL中获取的audio。 audio来自文本到audio服务,我需要在Unity上播放: http://api.ispeech.org/api/rest?apikey=…&action=convert&voice=eurspanishfemale&text=hola+que+tal 我一直在Google上search,没有find一个有效的解决scheme… Unity3D文档( WWW-audioClip , WWW.GetAudioClip )中有一个代码片段,但不工作,我已经debugging,错误说它可以打开文件。 using UnityEngine; using System.Collections; public class AudioURLScript : MonoBehaviour { public string url = "http://api.ispeech.org/api/rest?apikey=…&action=convert&voice=eurspanishfemale&text=hola+que+tal"; public AudioSource source; void Start() { WWW www = new WWW("file://"+url); source = GetComponent<AudioSource>(); source.clip = www.GetAudioClip(false,true); } void Update() { if (!source.isPlaying && source.clip.isReadyToPlay) source.Play(); } } 谢谢 解 这是我现在的工作解决scheme。 […]

为什么Social.localUser.Authenticate在Unity应用程序中没有互联网连接时会导致崩溃?

与互联网连接 一切都完美无瑕。 没有内存问题导致崩溃。 没有互联网连接 应用程序进入菜单屏幕,它最终崩溃,因为它是内存不足。 我得出的结论是,问题在于下面这行代码 Social.localUser.Authenticate 当我注释掉上面这行时,当没有互联网连接时,内存问题就会消失。 这是我的相关代码 void Start () { Social.localUser.Authenticate(ProcessAuthentication); } public void ProcessAuthentication(bool success) { if(success) Debug.Log ("Authenticated"); else Debug.Log ("Failed to authenticate"); } 导致崩溃 2016-02-27 15:46:37.131 BrickBall[449:60670] Received memory warning. WARNING -> applicationDidReceiveMemoryWarning() 2016-02-27 15:46:37.302 BrickBall[449:60670] Received memory warning. WARNING -> applicationDidReceiveMemoryWarning() 2016-02-27 15:46:37.349 BrickBall[449:60670] Received memory warning. WARNING […]

由于着色器未编译,Unity应用程序在iOS上崩溃

我正在尝试为iOS构build我的Unity 5.4.2f2应用程序。 这是没有编译错误。 但是,当我尝试使用Xcode 8.0运行应用程序,它立即崩溃,debugging器报告以下错误。 Initialize engine version: 5.4.2f2 (b7e030c65c9b) ——– Shader compilation failed #version 100 #extension GL_EXT_frag_depth : enable precision highp float; uniform highp vec4 _ProjectionParams; uniform highp vec4 _ZBufferParams; uniform highp mat4 unity_CameraToWorld; uniform highp mat4 _NonJitteredVP; uniform highp mat4 _PreviousVP; uniform highp sampler2D _CameraDepthTexture; varying highp vec2 xlv_TEXCOORD0; varying highp vec3 xlv_TEXCOORD1; […]

Unity IAP不能初始化

我使用Unity“采购员脚本”(在Unity的IAP示例中)来testingIAP,但是他们在testing期间不会在电话上初始化,即使他们初始化并传入编辑器。 我理解Unity编辑器总是通过IAP,这意味着我没有在苹果方面做任何事情。 iTunes连接状态,IAP必须与应用程序更新提交,所以我没有看到我可以单独创buildiTunes Connect上的IAP进行testing。 有人可以帮我理解我从哪里去,能够初始化和使用IAP? 所有的帮助是非常感激的。 注意:这是对不包含IAP的应用程序的更新。 此外,我已经确定我的产品ID与我的脚本中的产品ID匹配。 概要: IAP在统一编辑器中工作,而不是在iPhone上 我在itunes connect上创build了IAP,并且在我的脚本中有一个匹配的产品ID,这是Unity提供的“Purchaser Script”(在此处显示: https : //unity3d.com/learn/tutorials/topics/analytics / integrate-unity-iap-your-game ) 错误是在购买的初始化,它是失败的。 采购代码: using System.Collections.Generic; using UnityEngine; using UnityEngine.Purchasing; // Placing the Purchaser class in the CompleteProject namespace allows it to interact with ScoreManager, one of the existing Survival Shooter scripts. //namespace CompleteProject //{ // Deriving the […]