`

unity3D制作skybox淡入淡出

 
阅读更多
首先建立个shader
Shader "Custom/Skybox" {

Properties {
    _Tint ("Tint Color", Color) = (.5, .5, .5, .5)
    _FrontTex ("Front (+Z)", 2D) = "white" {}
    _BackTex ("Back (-Z)", 2D) = "white" {}
    _LeftTex ("Left (+X)", 2D) = "white" {}
    _RightTex ("Right (-X)", 2D) = "white" {}
    _UpTex ("Up (+Y)", 2D) = "white" {}
    _DownTex ("Down (-Y)", 2D) = "white" {}
    _FrontTex2("2 Front (+Z)", 2D) = "white" {}
    _BackTex2("2 Back (-Z)", 2D) = "white" {}
    _LeftTex2("2 Left (+X)", 2D) = "white" {}
    _RightTex2("2 Right (-X)", 2D) = "white" {}
    _UpTex2("2 Up (+Y)", 2D) = "white" {}
    _DownTex2("2 Down (-Y)", 2D) = "white" {}
    _Color ("Fade (use alpha)", Color) = (1,1,1,1)
}

SubShader {
    Tags { "Queue" = "Background" }
    Cull Off
    ZWrite On
    ZTest Always
    Fog { Mode Off }
    Lighting Off       
    Color [_Tint]
    Pass {
        SetTexture [_FrontTex] { combine texture }
        SetTexture[_FrontTex2] { 
            constantColor [_Color]
            combine texture lerp (constant) previous
        }
    }
    Pass {
        SetTexture [_BackTex] { combine texture }
        SetTexture[_BackTex2] { 
            constantColor [_Color]
            combine texture lerp (constant) previous
        }
    }
    Pass {
        SetTexture [_LeftTex] { combine texture }
        SetTexture[_LeftTex2] { 
            constantColor [_Color]
            combine texture lerp (constant) previous
        }
    }
    Pass {
        SetTexture [_RightTex] { combine texture }
        SetTexture[_RightTex2] { 
            constantColor [_Color]
            combine texture lerp (constant) previous
        }
    }
    Pass {
        SetTexture [_UpTex] { combine texture }
        SetTexture[_UpTex2] { 
            constantColor [_Color]
            combine texture lerp (constant) previous
        }
    }
    Pass {
        SetTexture [_DownTex] { combine texture }
        SetTexture[_DownTex2] { 
            constantColor [_Color]
            combine texture lerp (constant) previous
        }
    }
}

Fallback "RenderFX/Skybox", 1
}

材质间的动画转换
private var thisMaterial : Material;
private var fadeSpeed : float = 0.4;

function Start (){
    thisMaterial = RenderSettings.skybox;
    thisMaterial.color.a = 0.0;
}

function Update () {
    thisMaterial.color.a += (fadeSpeed * Time.deltaTime); 
    thisMaterial.color.a = Mathf.Clamp(thisMaterial.color.a, 0.0, 1.0);
}

skybox的纹理褪色,渐渐的转变。
public var blackTexture : Texture2D;

function Start (){
    thisMaterial = RenderSettings.skybox;
    thisMaterial.color.a = 0.0;

    thisMaterial.SetTexture("_FrontTex", blackTexture);
    thisMaterial.SetTexture("_BackTex", blackTexture);
    thisMaterial.SetTexture("_LeftTex", blackTexture);
    thisMaterial.SetTexture("_RightTex", blackTexture);
    thisMaterial.SetTexture("_UpTex", blackTexture);
    thisMaterial.SetTexture("_DownTex", blackTexture);
}
function Update () {
    thisMaterial.color.a += (fadeSpeed * Time.deltaTime); 
    thisMaterial.color.a = Mathf.Clamp(thisMaterial.color.a, 0.0, 1.0);
}

设置纹理等
thisMaterial.SetTexture("_FrontTex2", textureVariable);
分享到:
评论

相关推荐

    Unity3d-SkyBox-天空盒(25个天空盒)

    Unity3D是一款强大的跨平台游戏开发引擎,广泛用于制作3D和2D游戏、建筑可视化、虚拟现实体验等。在Unity3D中,"天空盒"(Skybox)是一种渲染技术,用于创建环境背景,给予游戏世界无限远的视觉效果。它是一个六面体...

    Unity3d-SkyBox-35个天空盒(含预览图)

    在Unity3D中,"天空盒"(Skybox)是一个重要的视觉元素,它为场景提供了一个无限远的环境背景,模拟出真实的天空效果,包括日出、日落、晴天、阴天、星空等多种景象。本资源包"Unity3d-SkyBox-35个天空盒(含预览图)...

    Unity3D SkyBox素材

    Unity3D是一款强大的跨平台游戏开发引擎,广泛用于制作2D和3D游戏、虚拟现实(VR)体验以及增强现实(AR)应用。在Unity3D中,SkyBox(天空盒)是创建环境背景和环境光照的重要工具。SkyBox是一种特殊的纹理,它以六面体...

    Unity3D动态天空盒和静态天空盒(32个)

    Unity3D是一款强大的跨平台游戏开发引擎,广泛应用于游戏、虚拟现实(VR)、增强现实(AR)以及电影和视频的制作。在Unity中,天空盒(Skybox)是一种渲染技术,用于创建环境背景,给予用户一个无限远的视觉边界,以模拟...

    U3d-SkyBox-35个天空盒(含预览图)

    Unity3d-SkyBox-35个天空盒(含预览图)Unity3d-SkyBox-35个天空盒(含预览图)Unity3d-SkyBox-35个天空盒(含预览图) 没有积分可以私聊我邮箱,看到会发给你的(有时候可能不会很快,先抱拳了)

    Unity3d35个天空盒(含预览图).zip

    在Unity3D中,天空盒(SkyBox)是一种特殊的六面纹理,用于模拟游戏环境中的无限远背景,为场景提供逼真的天空效果。这些天空盒可以是日出、日落、晴天、阴天、星空等多种不同的天气和时间条件,极大地增加了视觉的...

    unity.skybox 18个可用

    Unity是世界上最流行的游戏开发引擎之一,它为开发者提供了丰富的功能,包括实时3D渲染、物理模拟、动画系统以及丰富的资源管理。在Unity中,Skybox是一个重要的视觉元素,用于模拟游戏世界的无限远背景,通常表现为...

    Unity3D 多个天空盒子下载

    在Unity3D中,"天空盒"(Skybox)是一种重要的环境渲染技术,它为场景提供了一个无限远的背景,模拟出逼真的天空效果,包括日出、日落、云彩、星空等不同天气和时间的景象。 "天空盒"的概念源自计算机图形学,它...

    Unity 18种SkyBox

    Unity skyBox 对于5.0版本以上可能有那么的一两个不能用,但是总体上还是可以用的。

    Unity3d天空盒35个(含预览图)

    在Unity3D中,"天空盒"(Skybox)是一种用于模拟环境背景的技术,它可以为场景提供逼真的天空、海洋或任何其他环境效果。本资源包含35个不同的天空盒,每个都有预览图,旨在为开发者提供多样化的环境选择,以提升...

    Unity3D5个天漂亮的天空盒

    Unity3D是一款强大的跨平台3D游戏开发引擎,被广泛应用于游戏、虚拟现实(VR)、增强现实(AR)以及各种互动体验的制作。在Unity3D中,天空盒(Skybox)是一种重要的环境渲染技术,它为场景提供了一个无限远的背景,...

    unity3d得控件解释。。还有对unity3d的一些介绍

    Unity3D 控件解释与 Unity3D 介绍 Unity3D 是一个功能强大且灵活的游戏引擎,提供了许多控件和功能来帮助游戏开发者快速构建游戏项目。以下是 Unity3D 中的一些重要控件和功能的解释: 菜单控件 * Edit Frame ...

    unity3d天空盒子

    Unity3D是一款强大的跨平台3D游戏开发引擎,被广泛应用于游戏制作、虚拟现实和增强现实项目。在Unity中,"天空盒"(Skybox)是一种重要的环境渲染技术,用于模拟三维空间中的无限远背景,为场景提供逼真的天空效果。...

    Unity3d学习素材库

    天空盒子(Skybox)是Unity3D中的一个重要概念,它是一种特殊的3D纹理,用于渲染环境背景,以模拟无限远的天空或周围环境。天空盒通常由六个立方体贴图组成,分别对应前后左右上下六个面,给予观察者一个无缝的环绕...

    Unity3D中灯光经验小结2

    Unity3D 中灯光经验小结 第二部分将对 Unity3D 中灯光的基本概念、实时阴影、 Ambient Light、预设 Skybox 等进行详细的解释。 一、 Unity3D 中的灯光基本概念 在 Unity3D 中,灯光是指游戏场景中的光源,包括...

    Unity3d 天气系统,Sky and Weather v2.3.2

    Unity3D是一款强大的跨平台游戏开发引擎,广泛用于制作3D游戏、虚拟现实(VR)、增强现实(AR)以及互动式应用。在Unity3D中,天气系统是模拟真实世界天气现象的重要组成部分,它能为游戏场景增添更多生动性和真实感。...

    Skybox.unitypackage

    白天和黑夜天空盒

    unity SkyboxPanoramicShader-master

    Unity3D是一款强大的跨平台游戏开发引擎,广泛应用于游戏、虚拟现实(VR)和增强现实(AR)项目。"unity SkyboxPanoramicShader-master"是一个项目或资源包,专门针对Unity中的天空盒(Skybox)和全景视频的处理。在...

    Unity3D的12个天空盒

    Unity3D是一款强大的跨平台游戏开发引擎,广泛应用于游戏、虚拟现实(VR)和增强现实(AR)项目。天空盒(Skybox)是Unity中一个重要的视觉效果元素,它为场景提供了一个无限远的背景,模拟了环境的天空,给予玩家更加真实...

Global site tag (gtag.js) - Google Analytics