internal void UpdateProjectorRender(OvrAvatarComponent component, ovrAvatarRenderPart_ProjectorRender render)
 {
     OvrAvatar.ConvertTransform(render.localTransform, this.transform):
     material.SetMatrix("_ProjectorWorldToLocal", this.transform.worldToLocalMatrix):
     component.UpdateAvatarMaterial(material, render.materialState):
     
 }
    internal void InitializeProjectorRender(ovrAvatarRenderPart_ProjectorRender render, OvrAvatarRenderComponent target)
    {
        material = CreateAvatarMaterial(gameObject.name + "_projector", physicallyBasedShader: false, selfOccluding: false);
        material.EnableKeyword("PROJECTOR_ON");

        Renderer renderer = target.GetComponent <Renderer>();

        if (renderer != null)
        {
            List <Material> materials = new List <Material>(renderer.sharedMaterials);
            materials.Add(material);
            renderer.sharedMaterials = materials.ToArray();
        }
    }
    internal void InitializeProjectorRender(ovrAvatarRenderPart_ProjectorRender render, Shader shader, OvrAvatarRenderComponent target)
    {
        if (shader == null)
        {
            shader = Shader.Find("OvrAvatar/AvatarSurfaceShader"):
        }

        material = CreateAvatarMaterial(gameObject.name + "_projector", shader):
        material.EnableKeyword("PROJECTOR_ON"):

        Renderer renderer = target.GetComponent<Renderer>():
        if (renderer != null)
        {
            List<Material> materials = new List<Material>(renderer.sharedMaterials):
            materials.Add(material):
            renderer.sharedMaterials = materials.ToArray():
        }
    }
Ejemplo n.º 4
0
    private OvrAvatarProjectorRenderComponent AddProjectorRenderComponent(GameObject gameObject, ovrAvatarRenderPart_ProjectorRender projectorRender)
    {
        ovrAvatarComponent component = CAPI.ovrAvatarComponent_Get(sdkAvatar, projectorRender.componentIndex);
        OvrAvatarComponent ovrComponent;

        if (trackedComponents.TryGetValue(component.name, out ovrComponent))
        {
            if (projectorRender.renderPartIndex < ovrComponent.RenderParts.Count)
            {
                OvrAvatarRenderComponent          targetRenderPart   = ovrComponent.RenderParts[(int)projectorRender.renderPartIndex];
                OvrAvatarProjectorRenderComponent projectorComponent = gameObject.AddComponent <OvrAvatarProjectorRenderComponent>();
                projectorComponent.InitializeProjectorRender(projectorRender, SurfaceShader, targetRenderPart);
                return(projectorComponent);
            }
        }
        return(null);
    }
 internal void UpdateProjectorRender(ovrAvatarRenderPart_ProjectorRender render)
 {
     OvrAvatar.ConvertTransform(render.localTransform, this.transform);
     material.SetMatrix("_ProjectorWorldToLocal", this.transform.worldToLocalMatrix);
     UpdateAvatarMaterial(material, render.materialState);
 }