Hi,欢迎来到华清远见移动互联网学院官网!国内王牌JAVAEE培训、Android培训、Python培训、HTML5培训、UI培训、JAVA培训、VR培训机构!

  • 400-611-6270
  • 新浪微博
  • 微信
您当前的位置:移动互联网学院 > VR开发 > Unity3D实现全景图

Unity3D实现全景图

时间:2017-05-11 08:55 来源:移动互联网学院

全景图是我们非常实用的场景,会增加显示的场景效果,现在我们就来查看全景图的添加方法。

首先 我们准备一张全景图图片。 这个图片怎么做的呢, 这个要问你们的美术了,他们会做的的。 我本来想给准备一张, 奈何, 蛮牛上图大小限制, 我没办法上传了。 

然后呢 ,我们在场景中创建一个 球体。 

然后再创建一个空的物体 ,名字你随便起,我就起了个很长的名字, 毕竟一寸长一寸强

第三部,我们就要把一个摄像机放在这个 新建的空的物体里面,作为子物体。

然后 把 球体, 摄像机, 和这个空的物体 都reset 下 位置, 也就是位置都是 0,0,0  

这样 摄像机就在球体里面了。

下面就是写脚本和shader了 

[code]phpcode:

01 Shader "Unlit/Pano360Shader"

02 {

03    Properties

04 {

05    _MainTex("Base(RGB)", 2D) = "white"{}

06    _Color("Main Color", Color) = (1,1,1,0.5)

07 }

08 SubShader

09 {

10    Tags{ "RenderType" = "Opaque" }

11    //This is used to print the texture inside of the sphere

12    Cull Front

13    CGPROGRAM

14 #pragma surface surf SimpleLambert

15    half4 LightingSimpleLambert(SurfaceOutput s, half3 lightDir, half atten)

16 {

17    half4 c;

18    c.rgb = s.Albedo;

19    return c;

20 }

21

22 sampler2D _MainTex;

23 struct Input

24 {

25    float2 uv_MainTex;

26    float4 myColor : COLOR;

27 };

28

29 fixed3 _Color;

30 void surf(Input IN, inout SurfaceOutput o)

31 {

32    //This is used to mirror the image correctly when printing it inside of the sphere

33    IN.uv_MainTex.x= 1-IN.uv_MainTex.x;

34    fixed3 result = tex2D(_MainTex,IN.uv_MainTex)*_Color;

35    o.Albedo = result.rgb;

36    o.Alpha = 1;

37 }

38 ENDCG

39 }

40 Fallback "Diffuse"

41 }

这个shader 意思就是把图片做一个翻转 ,这样在球体内部看到图片也是正的。 

下面写一个控制摄像机旋转脚本

[code]csharpcode:

01 using UnityEngine;

02 using System.Collections;

03

04 public class Move : MonoBehaviour {

05

06    // Use this for initialization

07    void Start () {

08     

09    }

10     

11    // Update is called once per frame

12    void Update () {

13     

14        if(Input.GetKey(KeyCode.A))

15        {

16            transform.Rotate(new Vector3(0,1,0));

17        }

18        if (Input.GetKey(KeyCode.D))

19        {

20            transform.Rotate(new Vector3(0, -1, 0));

21        }

22    }

23 }

  • 北京

    010-82600385/6

    北京市海淀区西三旗悦秀路北京明园大学校内

  • 上海

    021-54485127

    上海市徐汇区漕溪路250号银海大楼11层

  • 深圳

    0755-25590506

    深圳市龙华新区人民北路美丽AAA大厦15层

  • 成都

    028-85405115

    成都武侯区科华北路99号科华大厦2层

  • 南京

    025-86551900

    南京市白下区汉中路185号鸿运大厦11层

  • 武汉

    027-87804688

    武汉工程大学卓刀泉校区科技孵化器大楼11层

  • 西安

    029-88756251

    西安市高新区高新1路12号天公大厦3层

  • 广州

    020-38342087

    广州市天河软件园柯木塱园5栋三层

  • 沈阳

    024-24349000

    沈阳市沈河区北顺城路137号锦峰大厦7层

  • 济南

    0531-88898293

    济南市高新区舜华路三庆世纪财富中心B3座6层

  • 重庆

    023-68064704

    重庆市九龙坡区渝州路87号双薪时代九楼

  • 长沙

    0731-88713136

    长沙市开福区芙蓉中路海东青大厦B座11楼

Copyright © 2004-2017 华清远见教育集团 版权所有,京ICP备16055225号,京公海网安备110108001117号