Tag: unity3d

更改(void)扩展方法中的值

所以我有这个模拟扩展方法,它将值更改为另一个值: public static void ChangeValue(this int value, int valueToChange) { value = valueToChange; } 当我尝试使用它时: int asd = 8; asd.ChangeValue(10); Debug.Log(asd); 它返回8而不是10.虽然值在ChangeValue方法中发生了变化,但它没有改变“asd”的值。 我需要向该方法添加什么,使其更新为“asd”?

Unity中的图像的onClick事件

是否可以在Unity中为图像(canvas的一个组件)添加“onClick”function? var obj = new GameObject(); Image NewImage = obj.AddComponent(); NewImage.sprite = Resources.Load(a + “/” + obj.name) as Sprite; obj.SetActive(true); obj.AddComponent(); 如何为“onClick”事件添加操作?

Unity 4.3 – 2D,如何以编程方式将sprite分配给对象

我正在尝试创建一个负责创建和显示不同精灵的对象,因此我想以编程方式直接访问assets / sprite,而不是在该对象下的层次结构中拖放精灵。 有一种方法可以以编程方式创建一个新的sprite并分配我在assets文件夹中的内容吗? 我也希望有一种数据结构,在游戏开始时加载一些图像,数组或字典或类似的东西,所以我可以根据我需要显示的图像的某些情况进行更改。 但是,因为我刚开始使用Unity,所以让我感到困惑的是如何使用assets文件夹以编程方式创建一个sprite引用精灵。 编辑进度: 我创建了一个像这样的sprite: public Sprite[] mySprites; 在Unity中我手动在数组中添加了精灵(我只是在变量数组中拖动了png)所以实际上在这个对象中我有一个组件,这个数组充满了精灵 在组件内部我也做到了这一点: public SpriteRenderer renderer; renderer = transform.GetComponent(); renderer.sprite = (Sprite)mySprites [0]; 我没有错误,直到我运行游戏,然后没有分配精灵,我得到了这个: “解除引用时PPtr强制失败!从Texture2D到Sprite的Castin!” 即使没有强制转换(Sprite)我也得到了这个错误。顺便说一句我不知道为什么他告诉我关于Texture2D的事情,因为它被设置为精灵

不知道如何在Unity3D中使用协同程序

在Unity3D中,这是我的代码: void ActivateBuff1(){ gun.equippedGun.msPerShot /= 2; gun.equippedGun.shotsLeftInMag += 10; StartCoroutine (WaitRage ()); } void ActivateBuff2(){ player.speedModifier *= 1.5f; StartCoroutine (WaitSpeed ()); } IEnumerator WaitRage(){ yield return new WaitForSeconds(powerUpDuration); gun.equippedGun.msPerShot *= 2; } IEnumerator WaitSpeed(){ yield return new WaitForSeconds(powerUpDuration); player.speedModifier /= 1.5f; } 每次玩家进入加电状态时,都会调用其中一个ActivateBuff方法。 显然,powerUps效果不会永远持续,所以我在等待一定秒数后使用IEnumerators来反转原始方法的效果。 但是出于某种原因, IEnumerators的代码永远不会被调用。 请帮助…(并请建议另一种编码方式,因为我知道它不是很干净)

镜像网格和错误的UV贴图运行时导出

编辑:所以在与Assimp dev进行短暂接触之后,我被指向了导入过程。 当我从其他人手中接过代码时,我认为没有看到那部分: using (var importer = new AssimpContext()) { scene = importer.ImportFile(file, PostProcessSteps.Triangulate | PostProcessSteps.FlipUVs | PostProcessSteps.JoinIdenticalVertices); } FlipUV完全按照它所说的做,它在y轴上翻转,因此原点现在是左上角。 所以现在我能够获得具有适当UV但仍然是镜像网格的模型。 设置具有缩放x = -1的父对象将其翻转回正常并使其看起来很好,但我想这并不意味着。 所以我一直在寻找。 看图,有两种起重机型号。 左边的那个通过序列化和重建在运行时加载,而右边的那个是原始的只是拖动到场景。 序列化发生在Assimp库中。 地板碰巧首先被创建,似乎得到了正确的紫外线地图。 而其他项目出错了uv map。 虽然我正在打印uv地图的值,但它们似乎与原始地图相匹配。 这是序列化的方法,这是来自Assimp的Mesh类,而不是Unity Mesh类,应用程序序列化是在UWP中构建的Windows应用程序: private static void SerializeMeshes(BinaryWriter writer, IEnumerable meshes) { foreach (Mesh mesh in meshes) { ICollection triangles = MeshLoadTriangles(mesh); MeshSerializeHeader(writer, mesh.Name, mesh.VertexCount, […]

在Unity中显示实时摄像头源

我有关于Unity的问题。 我希望以前没有回答过。 我想将相机(如高清摄像头)连接到我的电脑,video输入应显示在Unity场景中。 可以把它想象成一个虚拟电视屏幕,显示相机实时看到的内容。 我怎样才能做到这一点? 谷歌没有指出我正确的方向,但也许我只是无法正确查询;) 我希望你明白我的意思。

Unity3D XML(-RPC)和C#

我实际上是在这里回答我自己的问题。 我必须是世界上唯一一个试图这样做的人,但考虑到我用了大约一个星期的时间来解决这个问题 – 我想如果有另一个人想在Unity中使用XML(-RPC) – 我会拯救他们一周的麻烦。 我想做的是与我们的一个游戏服务器谈谈排行榜等事情。 这台服务器“会谈”XML-RPC,我很快发现在Unity中这并不容易。

如何为Unity3d设计我的在线游戏服务器?

最近,我一直在unity3d做多人游戏开发。 我非常清楚Unity的MasterServer如何在统一中工作。 但现在我想从头开始制作自己的游戏服务器。 我研究并了解我们可以使用Google云计算和应用引擎来制作我们自己的配对服务器和游戏主机服务器。 但我完全无能为力,我们如何开始编写服务器代码。 我们使用简单的http请求和json结果吗? 或者还有其他技术可以实时与FPS类型的游戏一起使用。 我不认为发送http请求并等待它的结果可以足够快,可以在FPS类型的游戏中工作,每秒我们发送超过100个数据。 起初我想到编写PHP脚本并将其托管到某个URL,然后向该URL发送请求并等待其响应。 但我发现如果我使用这个过程然后只是从服务器获得一个响应它将花费我至少0.5秒或更多。 在这种情况下,游戏中会有很多延迟。 我知道游戏服务器可以在某种tcp或udp网络上运行。 但我的问题是,我应该为服务器提供什么样的应用程序来接收这些数据并快速发送处理结果。

Unity3D的全局exception处理策略是什么?

我正在研究做一些Unity3D脚本的东西,我想建立全局exception处理系统。 这不适用于在游戏的发布版本中运行,目的是捕获用户脚本和编辑器脚本中的exception,并确保将它们转发到数据库进行分析(以及向相关开发人员发送电子邮件,以便他们可以修复他们的shizzle)。 在一个vanilla C#应用程序中,我有一个围绕Main方法的try-catch。 在WPF中,我将挂钩一个或多个未处理的exception事件 。 在Unity ……? 到目前为止,我能够想出的最好的是这样的: using UnityEngine; using System.Collections; public abstract class BehaviourBase : MonoBehaviour { // Use this for initialization void Start () { } // Update is called once per frame void Update () { try { performUpdate(); print(“hello”); } catch (System.Exception e) { print(e.ToString()); } } public abstract […]

如何使隐形透明按钮工作?

看一下Unity论坛和Q&A网站上的一些答案,如何制作一个隐形按钮的答案不起作用,因为拿走与该按钮相关的图像使其无效。 你如何绕过这个并保持隐形属性,同时让按钮实际工作?