首先建立个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是一款强大的跨平台游戏开发引擎,广泛用于制作3D和2D游戏、建筑可视化、虚拟现实体验等。在Unity3D中,"天空盒"(Skybox)是一种渲染技术,用于创建环境背景,给予游戏世界无限远的视觉效果。它是一个六面体...
在Unity3D中,"天空盒"(Skybox)是一个重要的视觉元素,它为场景提供了一个无限远的环境背景,模拟出真实的天空效果,包括日出、日落、晴天、阴天、星空等多种景象。本资源包"Unity3d-SkyBox-35个天空盒(含预览图)...
Unity3D是一款强大的跨平台游戏开发引擎,广泛用于制作2D和3D游戏、虚拟现实(VR)体验以及增强现实(AR)应用。在Unity3D中,SkyBox(天空盒)是创建环境背景和环境光照的重要工具。SkyBox是一种特殊的纹理,它以六面体...
Unity3D是一款强大的跨平台游戏开发引擎,广泛应用于游戏、虚拟现实(VR)、增强现实(AR)以及电影和视频的制作。在Unity中,天空盒(Skybox)是一种渲染技术,用于创建环境背景,给予用户一个无限远的视觉边界,以模拟...
Unity3d-SkyBox-35个天空盒(含预览图)Unity3d-SkyBox-35个天空盒(含预览图)Unity3d-SkyBox-35个天空盒(含预览图) 没有积分可以私聊我邮箱,看到会发给你的(有时候可能不会很快,先抱拳了)
在Unity3D中,天空盒(SkyBox)是一种特殊的六面纹理,用于模拟游戏环境中的无限远背景,为场景提供逼真的天空效果。这些天空盒可以是日出、日落、晴天、阴天、星空等多种不同的天气和时间条件,极大地增加了视觉的...
Unity是世界上最流行的游戏开发引擎之一,它为开发者提供了丰富的功能,包括实时3D渲染、物理模拟、动画系统以及丰富的资源管理。在Unity中,Skybox是一个重要的视觉元素,用于模拟游戏世界的无限远背景,通常表现为...
在Unity3D中,"天空盒"(Skybox)是一种重要的环境渲染技术,它为场景提供了一个无限远的背景,模拟出逼真的天空效果,包括日出、日落、云彩、星空等不同天气和时间的景象。 "天空盒"的概念源自计算机图形学,它...
Unity skyBox 对于5.0版本以上可能有那么的一两个不能用,但是总体上还是可以用的。
在Unity3D中,"天空盒"(Skybox)是一种用于模拟环境背景的技术,它可以为场景提供逼真的天空、海洋或任何其他环境效果。本资源包含35个不同的天空盒,每个都有预览图,旨在为开发者提供多样化的环境选择,以提升...
Unity3D是一款强大的跨平台3D游戏开发引擎,被广泛应用于游戏、虚拟现实(VR)、增强现实(AR)以及各种互动体验的制作。在Unity3D中,天空盒(Skybox)是一种重要的环境渲染技术,它为场景提供了一个无限远的背景,...
Unity3D 控件解释与 Unity3D 介绍 Unity3D 是一个功能强大且灵活的游戏引擎,提供了许多控件和功能来帮助游戏开发者快速构建游戏项目。以下是 Unity3D 中的一些重要控件和功能的解释: 菜单控件 * Edit Frame ...
Unity3D是一款强大的跨平台3D游戏开发引擎,被广泛应用于游戏制作、虚拟现实和增强现实项目。在Unity中,"天空盒"(Skybox)是一种重要的环境渲染技术,用于模拟三维空间中的无限远背景,为场景提供逼真的天空效果。...
天空盒子(Skybox)是Unity3D中的一个重要概念,它是一种特殊的3D纹理,用于渲染环境背景,以模拟无限远的天空或周围环境。天空盒通常由六个立方体贴图组成,分别对应前后左右上下六个面,给予观察者一个无缝的环绕...
Unity3D 中灯光经验小结 第二部分将对 Unity3D 中灯光的基本概念、实时阴影、 Ambient Light、预设 Skybox 等进行详细的解释。 一、 Unity3D 中的灯光基本概念 在 Unity3D 中,灯光是指游戏场景中的光源,包括...
Unity3D是一款强大的跨平台游戏开发引擎,广泛用于制作3D游戏、虚拟现实(VR)、增强现实(AR)以及互动式应用。在Unity3D中,天气系统是模拟真实世界天气现象的重要组成部分,它能为游戏场景增添更多生动性和真实感。...
白天和黑夜天空盒
Unity3D是一款强大的跨平台游戏开发引擎,广泛应用于游戏、虚拟现实(VR)和增强现实(AR)项目。"unity SkyboxPanoramicShader-master"是一个项目或资源包,专门针对Unity中的天空盒(Skybox)和全景视频的处理。在...
Unity3D是一款强大的跨平台游戏开发引擎,广泛应用于游戏、虚拟现实(VR)和增强现实(AR)项目。天空盒(Skybox)是Unity中一个重要的视觉效果元素,它为场景提供了一个无限远的背景,模拟了环境的天空,给予玩家更加真实...