【问题标题】:ARCore Unity adding a new gameobject to an imported prefabsARCore Unity 将新游戏对象添加到导入的预制件中
【发布时间】:2020-07-24 15:30:06
【问题描述】:

我已经使用https://www.youtube.com/watch?v=1cwm6sCcV_o&list=PLKIKuXdn4ZMhwJmPnYI0e7Ixv94ZFPvEP 上的本教程构建了一个 AR 门户

AR 门户运行良好。 但是现在,我想添加一个新的游戏对象(比如一个 Quad),它将充当横幅屏幕。我希望此横幅位于门户内。 我想将 WWW.LoadImagesintoTexture 脚本 (https://docs.unity3d.com/ScriptReference/WWW.LoadImageIntoTexture.html) 添加到此横幅并在其上渲染在线图像。

现在,我可以将在线图像放到横幅上,但是一旦我进入门户,横幅就会消失。原因是什么?我应该如何找到解决方案?

请注意:我们使用了 Unity 资源商店中的公园资源。

检查我正在使用的 OnlineIMage 脚本:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Rendering;


public class onlineimage : MonoBehaviour

{
    public Material[] materials;
    public string url = “https://docs.unity3d.com/uploads/Main/ShadowIntro.png“;

    IEnumerator Start()
    {

        foreach (var mat in materials) 
        {
            mat.SetInt (“_StencilTest”, (int)CompareFunction.NotEqual);
        }
        Texture2D tex;
        tex = new Texture2D(4, 4, TextureFormat.DXT1, false);
        using (WWW www = new WWW(url))
        {
            yield return www;
            www.LoadImageIntoTexture(tex);
            GetComponent<Renderer>().material.mainTexture = tex;
        }
    }
}

【问题讨论】:

    标签: c# unity3d augmented-reality arcore


    【解决方案1】:

    首先猜测是使用的材质/着色器。 本教程要求每种材质都有一个带有“_StencilTest”属性的特殊着色器,该属性将根据设备是否在“另一个世界”内进行切换。 如果对象通过测试,这将只允许绘制对象的像素。 还要确保门户脚本知道应该在过渡时更改的材料。

    【讨论】:

    • 请检查编辑。这是你想说的吗?我创建了一个“横幅”材质,并使用“横幅过滤器”着色器向材质添加了“横幅渲染器”渲染纹理。着色器与我们在教程中下载的使用 Unlit Shader 的“Skybox Renderer”使用的着色器相同。我应该对着色器和脚本进行哪些更改??
    • 我可以使用 ARCore preview 2 构建相同的应用吗?我必须做出哪些改变?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-06
    • 2017-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多