标签: unity5

无法获得碰撞或触发以处理 2 个 2D 对象

我有 2 个精灵,都附加了“Box Collider 2D”组件。我在附加到两个对象的脚本中放置了相同的检测功能:

void OnTriggerEnter2D(Collider2D coll) {
    Debug.Log ("Something triggered with me!!!");
}


void OnCollisionEnter2D( Collision2D coll ) { 
    Debug.Log ("Something collided with me!!!");
}
Run Code Online (Sandbox Code Playgroud)
  • 这是 Unity 5.2.1f1
  • 我试过触发器检查和触发器未检查。我更喜欢使用触发器,因为我不需要对象在物理上相互影响。
  • 我已经验证了函数名称和参数的拼写。我也试过删除这两个参数。
  • 任何一个对象上都没有 2D 刚体(我不需要,是吗?)
  • 移动当前由对象的 Update() 循环中的 Translate() 处理。
  • 我已经使用“Edit Collider”验证了每个周围都有一个像样的框。
  • 我已经 RTFM 并通读了其他人在这里看到的大多数问题,但我看不出我遗漏了什么。我已将所有可碰撞对象放置在名为“Character”的同一层上,它出现在项目设置的 2D 碰撞矩阵中并被选中。

在此处输入图片说明

有什么建议?

c# collision-detection unity-game-engine unity5

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

纹理在编辑器中加载但不在独立中加载(显示为粉红色)

我正在使用名为Simple Obj的资产,它允许我导入 obj、它们的材料和纹理关联。这在我的编辑器中工作正常,但在我的独立版本中无效。我的OBJ 不在我的资源文件中,我使用 WWW 方法从另一个文件中获取它。

这是我的方法,他下载我的 OBJ,创建一个游戏对象并将其放置在我的场景中

private IEnumerator DownloadAndImportAllInBackground(string url, Plane newPlane)
{
    string objString = null;
    string mtlString = null;
    Hashtable textures = null;
    GameObject planeObject = null;
    bool gameObjectPerGroup = false;
    bool subMeshPerGroup = false;
    bool usesRightHanded = true;

    yield return StartCoroutine(DownloadFile(url, retval => objString = retval));
        yield return StartCoroutine(DownloadFile(url.Substring(0, url.Length - 4) + ".mtl", retval => mtlString = retval));
        if (mtlString != null && mtlString.Length > 0) …
Run Code Online (Sandbox Code Playgroud)

c# unity-game-engine unityscript unity5

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

Unity Ads与Unity Ads 2.0

我想问一下,使用新的统一广告2.0与统一广告相比,收入是否有任何差异

Unity广告

Unity Ads 2.0

beta unity-game-engine unity5 unityads

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

Unity3d重启当前场景

好的,所以我试图重新启动R被按下的场景,由于某种原因,我在团结控制台中遇到错误:"意外符号'}'"和"解析错误".但随后在微软视觉工作室我得到了"预期".以下代码有什么问题吗?

void Update() {
    if (Input.GetKeyDown(KeyCode.R))  
        SceneManager.GetActiveScene().buildIndex
}
Run Code Online (Sandbox Code Playgroud)

c# unity-game-engine unity5

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

扩展UnityEngine.UI.Image并添加Inspector中可用的额外字段

我试图延长UnityEngine.UI.Image这样的

public class MyImage : Image {
   public string Comment;
}
Run Code Online (Sandbox Code Playgroud)

但是我没有Comment在检查器中看到额外的文本字段。是否可以添加检查器中可用的额外字段?

PS它触发为使用自定义Inspector扩展Unity UI组件重复,但不是重复的。我什么也没问custom Inspector。它只是的常规字段default Inspector。问题在于该字段根本没有出现在检查器中。

unity-game-engine unity3d-editor unity3d-gui unity5

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

unity-从Firebase数据库检索数据

我是Firebase的新手,也是Unity的新手(同样,这是我的第一个堆栈交换文章)。我知道如何写入Firebase,但不知道如何从数据树中检索。

我的数据的结构方式(大致)如下:

{
Users:{
    "Email": , 
    "Password":
    }
}
Run Code Online (Sandbox Code Playgroud)

我将如何访问用户的元素并检索其电子邮件和密码之类的东西?

c# unity-game-engine firebase firebase-realtime-database unity5

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

使用Shader.Find时,Unity Shader返回NULL。

如此处所述我不是唯一发现以下问题的人:

Shader.Find返回Null。

在上面的链接中,他们通过在资源文件夹中创建内容(?)提供了解决方案,但我不确定我是否理解。首先,这是否对所有情况都必要?(这意味着Shader.Find本身无法运行吗?)其次,我应该添加什么?着色器不亮?一种材料?这里很困惑

unity-game-engine unity5

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

如何避免列表中的重复值使用C#统一

我是统一的新手并使用C#,实际上我是python开发人员我试图制作一个只能包含唯一值的列表,如果有一些重复值,它将不允许进入列表

List<int> iList = new List<int>();
    iList.Add(2);
    iList.Add(3);
    iList.Add(5);
    iList.Add(7);
Run Code Online (Sandbox Code Playgroud)

list = [2,3,5,7]

**在python中我们这样做是为了避免重复列表**

if(iList.indexof(value)!=-1){
iList.append(value)
}
Run Code Online (Sandbox Code Playgroud)

但是我们应该如何在C#中实现非常相似的结果谢谢您的努力将受到高度赞赏

c# unity-game-engine c#-3.0 c#-4.0 unity5

1
推荐指数
2
解决办法
3021
查看次数

我应该为iOS(游戏中心)和Android(Google Play游戏)创建不同的项目吗?

我有一个用Unity制作的Android游戏正在取得成功,现在我想为iOS推出它.

我应该有两个Unity项目,一个用于Android,另一个用于iOS,或者我可以用一个唯一的项目吗?

我使用Google Play游戏,我想使用iOS游戏中心,我不知道它是否可以在一个项目中运行.

android unity-game-engine ios unity5

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

循环通过Transform的子时出错

我想遍历转换的所有子项,但我收到错误.

这是我想让所有孩子来自的变量:

public Transform parentToSearch;
Run Code Online (Sandbox Code Playgroud)

然后我在编辑器中将一个Transform对象从Hierarchy拖到了脚本中parentToSearch.

然后在脚本中我想循环遍历此Transform的所有子项:

private void OnGUI()
    {
        if (hasDescription == true && clickForDescription == true)
        {
            foreach (GameObject child in parentToSearch)
            {
                if (child.GetComponent<ItemInformation>() != null)
                {
                    ItemInformation iteminformation = child.GetComponent<ItemInformation>();
                    if (child.name == objectHit)
                    {
                        var centeredStyle = GUI.skin.GetStyle("Label");
                        centeredStyle.alignment = TextAnchor.UpperCenter;
                        GUI.Label(new Rect(Screen.width / 2 - 50, Screen.height / 2 - 25, 100, 50), iteminformation.description, centeredStyle);
                    }
                }
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

例外是在线:

foreach (GameObject child in parentToSearch)
Run Code Online (Sandbox Code Playgroud)

这是错误:

InvalidCastException:无法从源类型转换为目标类型

c# unity-game-engine unity5

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