Articles of 统一

2D无限亚军:如何管理背景图层?

首先,对于这个post感到抱歉,我想这已经被讨论过了。 我浏览stackexchange和网页,但似乎无法为我的情况find一个明确的信息,总是混杂的结果。 所以我正在和Unity合作开发一款手机游戏,并且从一开始就重新开始发展,以便表演顺利。 游戏是一个2D跑步者(Canabalt风格)。 虽然会有两种模式: 一个故事模式,约12个精确devise的层次将永远是相同的 一个随机生成的平台(平台)的街机模式。 主要特点 : 背景和前景视差(总共5-6层,具有不同的移动速度) 自动运行,手动跳过洞和攻击敌人 所以我有几个问题: 一个经典的问题是:我应该把它变成一个玩家,拥有一个固定的玩家位置,并让这个级别向前移动。 还是应该在相机跟随他的时候移动角色? 鉴于我想要多个视差背景的事实。 性能方面有差异吗? 一个相关的问题:我应该使用透视摄像机和Z轴玩吗? 或保持原来的相机? 我不确定它是如何影响表演的。 然后,读过很多话题,我想我应该试着把对象和背景移回去,而不是随便一层一层地去实例化和摧毁它们,对吧? 而对于我的预先devise的水平(而不是随机的),我应该分裂背景来显示它一步一步的performance? 我已经知道如何滚动我的背景,用我的5-6层做一个parrallax效果,在这里我正在寻找提示,以最聪明的开发风格,特别是在性能方面开始干净,并希望有一些提示是遵循的最佳实践 也许你还有其他好的做法与我分享…我希望我不要求太多,谢谢你的任何见解! 祝你有美好的一天

Unity3d – 在AR场景中移动3D对象

我有一个AR场景,下面有一个AR摄像机,一个图像目标和一个3D对象。 我想将AR对象移动到鼠标单击的位置。 我已经尝试了Input.mouseposition (屏幕位置),使用ScreenToWorldPosition转换它,并将3D对象移动到这个位置。 对象被移动,但不是鼠标点击位置。 如何将对象移动到鼠标单击的位置? 我的代码如下: Camera cam; Vector3 target = new Vector3(0.0f, 10f,0.5f); // Use this for initialization void Start () { if (cam == null) cam = Camera.main; } void Update() { if (Input.GetMouseButtonDown(0)) { Debug.Log("MouseDown"); Vector3 mousePos = Input.mousePosition; mousePos = cam.ScreenToWorldPoint(mousePos); GameObject.Find("Car1").gameObject.transform.position = mousePos; } } 编辑1 要用鼠标移动三维对象,我试过这个代码。 但是它不会移动鼠标点击的位置。 在这里input链接描述 […]

粒子系统中的粒子不被点亮

我有一个精灵,我想用在我的粒子系统(它只是4×4的白色方块)。 我也希望粒子被点亮(对场景中的灯光做出反应)。 由于我正在使用2D工具包,我只是简单地创建了一个新的tk2d精灵集合,它只包含单个纹理,在精灵集合设置中为其生成法线,将生成的atlas0材质的着色器设置为LitBlendVertex,并将atlas0材质附加到粒子系统。 但是,这些颗粒对光线没有反应。 我已经尝试了不同的着色器(Unity和tk2d),但无济于事。 我也搞乱了粒子系统的正常方向设置,但什么也没有。 是否有什么我错过了让粒子系统中的粒子被点燃?

Unity UIinput字段突然发生故障

我正在使用Unity 5.0.1f1,而我的用户界面input字段不能正常工作。 我有一个input字段放置在面板和canvas内。 它有一个Text组件,我可以在其中设置input字段将显示的文本。 当我改变这个Text组件的值时,这些改变不会反映在Input Field上,它似乎被重置为Input Field(Script)\ Input字段的值。 如果我进入播放模式,我可以正常input文本,但是当我在我的Android手机上编译和运行时,我无法input任何内容。 有没有人遇到过这个问题? 我该如何解决这个问题?

Unity3D能做些什么来优化我计算纹理对比度的方式?

我现在在Unity有这个对比脚本: public void ApplyContrast(string contrast) { try { double contrastD = Convert.ToDouble(contrast); //Make an empty Texture the same same as the original bitmapImage = new Texture2D(imgTexture.width, imgTexture.height); if (contrastD < -100) contrastD = -100; if (contrastD > 100) contrastD = 100; contrastD = (100.0 + contrastD) / 100.0; contrastD *= contrastD; Color color; //Access each […]

我的运行时网格不是在顶点所在的位置创建的,需要帮助

我正在尝试在运行时创建一个四元组,并且遇到一个问题,即网格不显示在设置了顶点的场景中。 在下面的图片中,您可以看到船,并在最右边的网格。 使用网格的4个顶点在网格后面画出的4个白色圆点。 我的代码: //Handles the method calls for the mesh creation private void BoundingMeshCreation() { Quaternion currentRotation = ResetPosition(new Quaternion(0, 0, 0, 0)); BoundingPointsType boundingPoints = DetermineBounds(); Mesh boundingMesh = CreateBoundingMesh(boundingPoints); AssignMesh(boundingMesh); ResetPosition(currentRotation); } //Creates the mesh filter and assigns the mesh private void AssignMesh(Mesh boundingMesh) { MeshFilter newMeshFilter = gameObject.AddComponent<MeshFilter>(); newMeshFilter.mesh = boundingMesh; […]

Unity3d碰撞者不在我的角色上工作

我已经在maya中创建了2个字符,并在Unity3d中导入了它们。 我能够统一移动和animation,但角色不会相互碰撞。 我已经尝试了所有主要的对撞机胶囊,盒子和网眼。 我有点卡住了!

统一如何在运行时更改材料属性

我正在做一个统一游戏,我想从脚本中改变材质的颜色。 材质适用于线条渲染器。 我目前有以下脚本: using UnityEngine; using System.Collections; public class LaserProperties : MonoBehaviour { public Vector3 RGBStrengths; public LineRenderer lineRenderer; /* * returns the color in RGB. */ Color getColor(){ Color c = new Color (0, 0, 0, 1); float highest = Mathf.Max (RGBStrengths.x, RGBStrengths.y, RGBStrengths.z); cr = RGBStrengths.x / highest; cg = RGBStrengths.y / highest; […]

重写Unity中的所有对象检查器

如何才能做到这一点? 我想在检查员中为每个组件添加一个标签(包括非不良行为标签)。 我试过了: [CustomEditor( typeof( Object ) )] 和: [CustomEditor( typeof( Component ) )] 这似乎适用于所有没有自定义编辑器的组件(如BoxCollider和Transform)。 看起来如果一个组件已经有一个自定义的编辑器,它会忽略我定义的那个。 即使我将属性更改为: [CustomEditor( typeof( Transform ) )] 变形检查员仍然没有改变。 如何为这些组件定义我自己的自定义编辑器?

SystemInfo.deviceUniqueIdentifier有多长?

SystemInfo.deviceUniqueIdentifier有多长? 官方的文件没有提到这一点。 显然我可以做一些尝试,但这些决不会是结论性的:某人收集了大量的数据,还是分析了创建它的algorytm?