首先建立个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-35个天空盒(含预览图)Unity3d-SkyBox-35个天空盒(含预览图)Unity3d-SkyBox-35个天空盒(含预览图)
Unity3d-SkyBox-天空盒(25个天空盒),各种天空天气,雪天,,黄昏,晴空万里等。。。
Unity3D SkyBox素材
Unity3d-SkyBox-35个天空盒(含预览图)Unity3d-SkyBox-35个天空盒(含预览图)Unity3d-SkyBox-35个天空盒(含预览图) 没有积分可以私聊我邮箱,看到会发给你的(有时候可能不会很快,先抱拳了)
这是我学Unity多年来收集和使用的天空盒子,一个动态天空盒子的实例+22个静态天空盒子含实例。用Unity有了这一款适合所有场景使用。 里面包含素材和实例,适合做游戏、电影、视频场景
Unity3d SkyBox 35个天空盒(含预览图) Unity3d SkyBox 35个天空盒(含预览图) Unity3d SkyBox 35个天空盒(含预览图)
Unity skyBox 对于5.0版本以上可能有那么的一两个不能用,但是总体上还是可以用的。
unity.skybox 18个可用 你懂的,解压直接可用
白天和黑夜天空盒
Unity3D多个天空盒资源下载,解压后可直接使用,欢迎下载
Unity3d 天空盒使用教程,往往最基础的教程没人写,我在网站上搜了下,没有。我就找官方帮助翻译了一个,给初学者共享。翻译不当地方请大家指出。
unity SkyboxPanoramicShader-master,全景视频使用到Skybox上。
Unity3D的12个天空盒
unity3D中的天空材质资源,可以在unity3D中使用,只需要双击或者右键打开一下即可使用(不会skybox的在百度可以搜索到)。
13-Cityscape Skybox II城市景观天空盒U3D unity3d材质与材料 + Unity3d-SkyBox-35个天空盒(含预览图)+城市贴图+ Skyboxes_18 Unity 天空盒, 有城市的, 有天空的, 太大了传不上去, 上传的是网盘链接, 自己去下载
unity3d的天空盒 包含晴天 阴天 晚上等,内含预览图,在U3D里直接导入就可以用.
可用于UnityVR开发,3D游戏开发,高清天空盒子Skybox素材,游戏环境背景素材,无水印。 让你身临其境的天空盒子,各类题材丰富,都是辛苦搜罗所得的高清exr格式,可以直接用于Unity开发,特别是VR游戏的开发。 内景...
RealSky Unity3d实时动态天空球插件 ,unitypackage格式 支持PC端,也支持移动设备 RealSky is a simple, real-time sky solution specifically designed for low end mobile devices. Key Features: * Easy to ...
flash3d sandy3d Demo_Skybox全景图源码,还不错。