标签: unity3d-2dtools

手动编辑Unity3D对撞机坐标?

试图创建一个2D游戏,我需要一个精确对称的2D多边形对撞机,所以我想用手/数字设置坐标,而不是使用鼠标.

如何才能做到这一点?

我想游戏可以在启动时调整坐标,但如果可能的话,我宁愿让它们正确的"设计时间".此外,如果我要在启动时以编程方式执行此操作,我会感谢您提供了一个方法或合适的链接来帮助解决这个问题.

collision-detection unity-game-engine unity3d-2dtools

10
推荐指数
1
解决办法
5897
查看次数

如何为Unity3d for iOS添加辅助功能

有没有办法通过Unity3d与iOS的VoiceOver辅助功能本机支持进行通信?我们有一个需要访问的应用程序,我们不确定如何去做.

由于我们需要语言支持,因此无法创建我们自己的自定义VoiceOver,因此我们需要本地化.我们的直觉告诉我们通过插件与iOS通信,但似乎iOS硬件无法捕获统一分接头,但它似乎也覆盖了我们的一些手势.

任何建议将不胜感激.

accessibility unity-game-engine ios unity3d-2dtools

9
推荐指数
1
解决办法
1292
查看次数

Unity 2D与3D差异

Unity 2D项目和统一3D项目之间的主要区别是什么!统一渲染2D项目比3D更快吗?或者2D预制件/纹理需要的内存少于3D?是否有在2D项目中创建2D网格的选项?

感谢您的时间!

unity-game-engine unity3d-2dtools

9
推荐指数
1
解决办法
1万
查看次数

奇怪的iOS8 + Unity3D打嗝

使用Unity3D和iOS8时,我们遇到了一个奇怪的问题.大约1分钟后,有一个很大的(有时小一点)打嗝,我们无法弄清楚原因.垃圾收集?

我们花了几天时间试图找出问题所在,然后创建了一个简单的演示项目,其中出现了完全相同的问题.

打嗝不会出现在iOS 7或更低版​​本的设备上,不会出现在Android上,也不会出现在编辑器中.只有iOS8.我们尝试使用最新版本的Unity和最新的4.6 beta进行构建.

有没有人建议如何解决这个问题?这是Unity3D中的错误吗?

演示项目:

  • 单击第一个场景中的"黑条"以进入出现问题的场景2.
  • 仔细看看赌场.大约1分钟后,你会看到他们停下片刻,然后向前跳.好像错过了几帧.
  • 如果我们从发射直接进入"scenetwo",似乎不会出现这个问题.

https://github.com/dale/demoproject-hiccup

编辑2014-10-20:

Unity现在回应了这一点."我们得到了关于这个问题的其他报告.它似乎是由iOS8的新"功能"引起的,如果你的应用程序经常乱洗线程,看门狗会生成异常报告.我们正在研究如何减轻/避免这些报告".

unity-game-engine ios ios8 unity3d-2dtools

8
推荐指数
1
解决办法
559
查看次数

开发2D游戏Inside Canvas Scaler

我是Unity的新手,我已经意识到,如果资产商店没有付费的第三个插件,就很难在Unity上进行多分辨率的2D游戏.

我做了一些测试,我可以用这种方式做多分辨率支持:

1-将UI(按钮等)中的所有内容放置在渲染模式屏幕空间中的Canvas对象内 - 以16:9参考分辨率和固定宽度覆盖.

2-将其余的游戏对象放入一个名为GameManager的游戏对象中,并在渲染模式屏幕空间中使用Canvas Scaler组件 - 摄像机具有16:9参考分辨率,固定宽度和附加的主摄像头.之后,GameManager中的所有游戏对象,如玩家,平台等,都需要有一个RectTransform组件,例如CanvasRenderer组件和Image Component.

我可以继续以这种方式开发游戏吗,或者这是做错事情的方法吗?

问候

aspect-ratio unity-game-engine unity3d-2dtools

7
推荐指数
2
解决办法
1993
查看次数

Unity3D Sprite ...但单面?

Unity 优秀的Sprites(Unity 优秀的新精灵),除了其他有价值的优势之外,实际上是双面的。

在 2D 或 3D 用例中,您可以翻转这些小混蛋,仍然可以从后面看到它们——它们是从两侧渲染的。

我也喜欢它们上使用的 unlit 着色器(即 Sprite-Default,而不是 Sprite-Diffuse)。

但是,我需要一个老式的单面Sprite.

幸运的是,您可以免费下载 Unity 使用的优秀着色器的源代码......令人困惑的是,您不能只是在编辑器中打开它,而是在这里和那里查看

涉及廉价威士忌的大量持续努力之后,我对着色器进行了两 (2) 次修改。

  1. 我将文件第一行中的名称更改为“DefaultSingle”而不是“Default”

  2. 我评论了这条线 Cull Off

(然后我制作了一个新的Material,称为“Sprite Single Sided”,将着色器设置为这个新的,然后Sprite我用新材质替换了材质槽。)

事实上,我是否通过进行此修改来搞砸着色器中的任何内容?一个人可以愉快地注释掉“Cull off”而不引起进一步的问题吗?改变使用的常用材料是否有一些问题Sprite(您无法“看到”它,所以我不知道)。更广泛地说,有没有更正确的方法来实现单面Sprite

// file "Sprites-DefaultSingle.shader"
Shader "Sprites/DefaultSingle"
{
  Properties
  {
    [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {}
    _Color ("Tint", Color) = (1,1,1,1)
    [MaterialToggle] PixelSnap ("Pixel snap", Float) = 0
  }

  SubShader
  { …
Run Code Online (Sandbox Code Playgroud)

shader unity-game-engine unity3d-2dtools

7
推荐指数
1
解决办法
5333
查看次数

执行raycast时,Camera.main为null

生成错误的代码:

void Update()
{
    if (Input.touchCount > 0)
    {
        RaycastHit2D hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.GetTouch(0).position), Vector2.zero);
        if (hit && hit.collider != null && hit.collider.name == "leftTapArea")
        {
            hit.transform.name = "Hit";
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

它说这个字符串有问题:

RaycastHit2D hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.GetTouch(0).position),Vector2.zero);

错误:

NullReferenceException:对象引用未设置为对象的实例leftScript.Update()(在Assets/leftScript.cs:16)

c# unity-game-engine unity3d-2dtools

6
推荐指数
1
解决办法
1889
查看次数

通过代码定位具有锚定预设的UI元素

当我们在定位统一的UI元素,我们从固定锚预设的位置,因此它的位置是否正确放置在画布上.

在此输入图像描述

我们选择顶部,中部,底部,拉伸和蓝色点.

如果我在C#中的代码中创建UI元素,我怎么能做同样的事情?

我做

Texture2D textureWhite = new Texture2D(1, 1);
textureWhite.SetPixel(0, 0, Color.white);
textureWhite.Apply(); 
Run Code Online (Sandbox Code Playgroud)

如何将左上角与蓝色点一起修复?

c# unity-game-engine unity3d-2dtools

6
推荐指数
1
解决办法
3733
查看次数

在 Unity 中向鼠标位置发射射弹

我正在创建一款 2D 游戏,玩家需要点击才能射击。鼠标光标在屏幕上的任何位置就是弹丸移动的方向。我能够实例化射弹并到达鼠标位置,但射弹跟随鼠标,这不是我想要的。

public class LetterController : MonoBehaviour {

    private List<GameObject> letters = new List<GameObject>();
    public GameObject letterPrefab;
    public float letterVelocity;

    // Use this for initialization
    private void Start()
    {
    }

    // Update is called once per frame
    void Update ()
    {
         Vector3 direction = Camera.main.ScreenToWorldPoint(Input.mousePosition);

    if (Input.GetMouseButtonDown(0))
    {
        GameObject letter = (GameObject)Instantiate(letterPrefab, transform.position, Quaternion.identity);
        letters.Add(letter);
    }

    for (int i = 0; i < letters.Count; i++)
    {
        GameObject goLetter = letters[i];

        if (goLetter != null)
        {
            goLetter.transform.Translate(direction * Time.deltaTime * …
Run Code Online (Sandbox Code Playgroud)

c# unity-game-engine unity3d-2dtools

6
推荐指数
1
解决办法
3223
查看次数

unity scrollview 无法滚动到最后

我有一个滚动视图。水平和垂直滚动条被删除,因为它很丑,而且我有空间限制。

当我将项目填充到滚动视图的内容中时,如图所示 在此处输入图片说明

我不能滚动。视图正在移动但不滚动。当我滚动时,只需滚动到一定程度并滚动回原始位置。

可能有什么问题?

在此处输入图片说明

unity-game-engine unity3d-2dtools

6
推荐指数
1
解决办法
1万
查看次数