Tag: unity3d

Unity如何在Unity中制作Visual JoyStick

我正在写一个脚本来放一个button,将检测拖动方向来移动播放器 void OnGUI() { if (buttonRect.Contains(Event.current.mousePosition)) { if (Event.current.type == EventType.MouseDown) { buttonPressed = true; } if (Event.current.type == EventType.MouseUp) { buttonPressed = false; } } if (buttonPressed && Event.current.type == EventType.MouseDrag) { } } 如果这个脚本被放置在一个button上,我怎样才能得到button界限为一个矩形? 此外,如果任何人有一个更好的解决scheme,通过拖动控制运动,我会开放的build议。

从另一个脚本访问variables/函数

所以即时通讯尝试通过触摸一个立方体更改另一个脚本中的variables。 当前设置 1x播放器 1x敌人 每个人都有自己的脚本Enemy_Stats & Character_Stats 正如你可以在这个小片段中看到的,从另一个脚本访问variables是一个很好的解决方法。 void OnCollisionEnter(Collision collision) { if (collision.gameObject.tag == "Enemy") { collision.gameObject.GetComponent<Enemy_Stats>().Health = collision.gameObject.GetComponent<Enemy_Stats>().Health – gameObject.GetComponent<Character_Stats>().AttackDamage; if (collision.gameObject.GetComponent<Enemy_Stats>().Health <= 0) { Destroy(collision.gameObject); } } } Iam是Unity的新成员,但是没有办法像这样引用它: collision.Health 。健康?

太多的字段参考:70613; 最大是65536

我的项目使用这些插件: OneSignal GooglePlayServices 调整 谷歌分析 统一IAP Facebook的SDK 这些插件几乎用在每个项目中。 但是我已经结束了现场引用计数 这是我的.aar文件列表 我应该怎么做才能减less参考计数?

随着时间的推移移动GameObject

我从一个Swift SpriteKit背景学习Unity,在这个背景下,移动一个精灵的x位置就像运行一个动作一样简单,如下所示: let moveLeft = SKAction.moveToX(self.frame.width/5, duration: 1.0) let delayAction = SKAction.waitForDuration(1.0) let handSequence = SKAction.sequence([delayAction, moveLeft]) sprite.runAction(handSequence) 我想知道一个等同的或类似的方法,将一个精灵移动到一个特定的位置一段特定的时间(比如说一秒),而不必在更新函数中调用这个延迟。

团结游戏经理。 脚本只能运行一次

我正在做简单的游戏经理。 我有一个脚本,可以从游戏中的所有场景访问。 加载新场景后,我需要检查其variables的值。 但是我的代码在开始模拟之后只运行一次,而所有场景中都存在具有此脚本的对象。 哪里不对? 加载新场景后为什么不能运行?

统一:在创build新的类实例时为空

我陷入了非常愚蠢的情况:我正在做generics类的新实例,但它返回“怪异”null。 Rule rule2 = new Rule(); // initiate the class Debug.Log(rule2); //1st debug rule2.RuleSetup(r: "CaughtEnough", li: 0); //setting up the parameters Debug.Log(rule2.rule); //2nd debug 第一次debugging给了我 null UnityEngine.Debug:Log(Object) 同时设置参数工作,第二次debugging给我 CaughtEnough UnityEngine.Debug:Log(Object) 这是什么应该是在适当的类实例。 它给我带来的一个(只是迄今为止)的问题是,如果白我这个规则类实例我打电话 Invoke(rule, 0f); 它给了我NullReferenceException错误。 但同时也是实际的function CaughtEnough(); 工作正常,如预期。 任何想法可能是问题的根源,以及如何克服它? UPD也发布规则类的设置部分,如问,虽然它很简单 public class Rule : MonoBehaviour { public string rule; public int leftInt; public Dictionary<string, int> […]

无法列出目标平台。 请确保android sdkpath是正确的

我正在尝试构build旧的统一版本(v_4.6.3)项目。 但我有一个错误。 已经有了成功的结果,但是目前我的sdk是用最新版本更新的。 http://screencast.com/t/u7lNiyoc 这是我的统一错误日志。 Error building Player: CommandInvokationFailure: Unable to list target platforms. Please make sure the android sdk path is correct. See the Console for more details. C:\Program Files\Java\jdk1.8.0_66\bin\java.exe -Xmx2048M -Dcom.android.sdkmanager.toolsdir="E:/Temp/sdk\tools" -Dfile.encoding=UTF8 -jar "C:/Program Files (x86)/Unity/Editor/Data/BuildTargetTools/AndroidPlayer\sdktools.jar" – stderr[ Exception in thread "main" java.lang.NoClassDefFoundError: com/android/utils/ILogger at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:348) at SDKMain.main(SDKMain.java:128) Caused by: […]

从另一个线程使用Unity API或调用主线程中的函数

我的问题是我尝试使用Unity套接字来实现一些东西。 每当我收到一条新消息时,我都需要将它更新到updattext(这是一个Unity文本)。 但是,当我执行以下代码时,无效更新不会每次都调用。 我不包括updatetext.GetComponent<Text>().text = "From server: "+tempMesg;的原因updatetext.GetComponent<Text>().text = "From server: "+tempMesg; 在无效getInformation是这个函数是在线程中,当我包含在getInformation()它会带来一个错误: getcomponentfastpath can only be called from the main thread 我觉得问题是我不知道如何在C#中一起运行主线程和子线程? 或者也许还有其他问题…希望有人可以帮助..有我的代码: using UnityEngine; using System.Collections; using System; using System.Net.Sockets; using System.Text; using System.Threading; using UnityEngine.UI; public class Client : MonoBehaviour { System.Net.Sockets.TcpClient clientSocket = new System.Net.Sockets.TcpClient(); private Thread oThread; // for UI […]

什么是保存游戏状态的最佳方式?

我find了在Unity3D游戏引擎中保存游戏数据的最佳方法。 首先,我使用BinaryFormatter序列化对象。 但是我听说这个方法有一些问题,不适合保存。 那么,保存游戏状态的最佳方式或推荐方法是什么? 在我的情况下,保存格式必须是字节数组。

在Unity中对Json和Json数组进行序列化和反序列化

我有一个从PHP文件发送到使用WWW统一的项目列表。 WWW.text看起来像[{"playerId":"1","playerLoc":"Powai"},{"playerId":"2","playerLoc":"Andheri"},{"playerId":"3","playerLoc":"Churchgate"}]在那里我从string修剪额外的[] 。 当我尝试使用Boomlagoon.JSONparsing它时,只有第一个对象被检索。 我发现我必须deserialize()列表并导入MiniJSON。 但我很困惑如何反序列化()这个列表。 我想遍历每个JSON对象并检索数据。 我如何使用C#在Unity中做到这一点? 我正在使用的类是 public class player { public string playerId { get; set; } public string playerLoc { get; set; } public string playerNick { get; set; } } 修剪完[]我能够使用MiniJSONparsingJSON。 但它只返回第一个KeyValuePair 。 IDictionary<string,object> s = Json.Deserialize(serviceData) as IDictionary<string,object>; foreach (KeyValuePair<string, object> kvp in s) { Debug.Log(string.Format("Key = {0}, Value […]