【发布时间】:2018-06-14 09:21:57
【问题描述】:
我想使用 unity 制作 360video 应用程序。当我将 360video 连接到 unity 并运行时制作 360video 应用程序,但我没有得到正确的 360video。我得到视频运行速度太慢而且视频不播在 360 视频格式中,它以 2D 视频显示。现在我该如何解决这个问题?
【问题讨论】:
标签: unity3d video 360-virtual-reality
我想使用 unity 制作 360video 应用程序。当我将 360video 连接到 unity 并运行时制作 360video 应用程序,但我没有得到正确的 360video。我得到视频运行速度太慢而且视频不播在 360 视频格式中,它以 2D 视频显示。现在我该如何解决这个问题?
【问题讨论】:
标签: unity3d video 360-virtual-reality
首先,下次你在 Stack Overflow 上发帖时,试着展示你做了什么,你做了什么,否则人们不会回复你。
1.在你的场景中放一些新的GameObject,一个3D Object(如果你想显示360视频,我会推荐你使用一个简单的Sphere) .
2.将 AudioSource 组件附加到球体。
3.将 VideoPlayer 组件附加到 Sphere,指定您的视频源,如果它是 URL 或直接视频剪辑。将您的 AudioSource 添加到 VideoPlayer(在底部您将看到附加它的位置)。
4.将新的shader附加到球体材质以翻转球体法线,因此视频将显示在球体内,而不是在球体上。 p>
着色器应该是这样的:
Shader "Flipping Normals" {
Properties {
_MainTex ("Base (RGB)", 2D) = "white" {}
}
SubShader {
Tags { "RenderType" = "Opaque" }
Cull Off
CGPROGRAM
#pragma surface surf Lambert vertex:vert
sampler2D _MainTex;
struct Input {
float2 uv_MainTex;
float4 color : COLOR;
};
void vert(inout appdata_full v) {
v.normal.xyz = v.normal * -1;
}
void surf (Input IN, inout SurfaceOutput o) {
fixed3 result = tex2D(_MainTex, IN.uv_MainTex);
o.Albedo = result.rgb;
o.Alpha = 1;
}
ENDCG
}
Fallback "Diffuse"
}
【讨论】: