ARCore Unity向导入的预制件添加新游戏对象

时间:2018-01-03 07:23:38

标签: unity3d unityscript augmented-reality arcore

我在https://www.youtube.com/watch?v=1cwm6sCcV_o&list=PLKIKuXdn4ZMhwJmPnYI0e7Ixv94ZFPvEP

使用本教程构建了一个AR门户网站

AR Portal工作正常。 但现在,我想添加一个新的gameObject(比如说Quad),它将作为横幅屏幕。我希望这个横幅在门户网站内。 我想将WWW.LoadImagesintoTexture脚本(https://docs.unity3d.com/ScriptReference/WWW.LoadImageIntoTexture.html)添加到此横幅并将在线图像渲染到其上。

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

请注意:我们使用了Unity上资产商店的Park Assets。

检查我正在使用的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;
        }
    }
}

1 个答案:

答案 0 :(得分:1)

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