2014-10-11 50 views
1

我正在为我的游戏制作一个白天和黑夜系统,我有一个脚本,使一天正常不要把夜晚,我想创建另一个副本,并把相同脚本为晚上,然后第一个脚本调用第二个和第二个调用第一个井是一个无休止的昼夜循环,想知道是否有人有任何想法使它更好或对编程世界是新的,所以我没有想法如何做到这一点。调用脚本启动另一个脚本

对不起,我正在努力改善,我是巴西人。我感谢所有的帮助,并等待某人的回应。

var slider : float; 
var slider2 : float; 
var Hour : float; 
private var Tod: float; 
var sun: Light; 


var NightFogColor : Color; 
var DuskFogColor : Color; 
var MorningFogColor : Color; 
var MiddayFogColor : Color; 

var NightAmbientLight : Color; 
var DuskAmbientLight : Color; 
var MorningAmbientLight : Color; 
var MiddayAmbientLight : Color; 

var NightTint : Color; 
var DuskTint : Color; 
var MorningTint : Color; 
var MiddayTint : Color; 

var SkyBoxMaterial1 : Material; 
var SkyBoxMaterial2 : Material; 

var SunNight : Color; 
var SunDay : Color; 


function OnGUI() { 

slider= GUI.HorizontalSlider(Rect(20,20,200,30), slider, 0,1.0); 
Hour= slider*24; 
Tod= slider2*24; 
sun.transform.localEulerAngles.x= (slider*360)-90; 
slider = slider +Time.deltaTime/900; 
sun.color = Color.Lerp (SunNight, SunDay, slider*2); 
if(slider<0.5){ 
slider2= slider; 
} 
if(slider>0.5){ 
slider2= (1-slider); 
} 
sun.intensity = (slider2-0.2)*2; 


if(Tod<4){ 
//it is Night 
RenderSettings.skybox=SkyBoxMaterial1; 
RenderSettings.skybox.SetFloat("_Blend", 0); 
SkyBoxMaterial1.SetColor ("_Tint", NightTint); 
RenderSettings.ambientLight = NightAmbientLight; 
RenderSettings.fogColor = NightFogColor; 
} 
if(Tod>4&&Tod<6){ 
RenderSettings.skybox=SkyBoxMaterial1; 
RenderSettings.skybox.SetFloat("_Blend", 0); 
RenderSettings.skybox.SetFloat("_Blend", (Tod/2)-2); 
SkyBoxMaterial1.SetColor ("_Tint", Color.Lerp (NightTint, DuskTint, (Tod/2)-2)); 
RenderSettings.ambientLight = Color.Lerp (NightAmbientLight, DuskAmbientLight, (Tod/2)-2); 
RenderSettings.fogColor = Color.Lerp (NightFogColor,DuskFogColor, (Tod/2)-2); 
//it is Dusk 

} 
if(Tod>6&&Tod<8){ 
RenderSettings.skybox=SkyBoxMaterial2; 
RenderSettings.skybox.SetFloat("_Blend", 0); 
RenderSettings.skybox.SetFloat("_Blend", (Tod/2)-3); 
SkyBoxMaterial2.SetColor ("_Tint", Color.Lerp (DuskTint,MorningTint, (Tod/2)-3)); 
RenderSettings.ambientLight = Color.Lerp (DuskAmbientLight, MorningAmbientLight, (Tod/2)-3); 
RenderSettings.fogColor = Color.Lerp (DuskFogColor,MorningFogColor, (Tod/2)-3); 
//it is Morning 

} 
if(Tod>8&&Tod<10){ 
RenderSettings.ambientLight = MiddayAmbientLight; 
RenderSettings.skybox=SkyBoxMaterial2; 
RenderSettings.skybox.SetFloat("_Blend", 1); 
SkyBoxMaterial2.SetColor ("_Tint", Color.Lerp (MorningTint,MiddayTint, (Tod/2)-4)); 
RenderSettings.ambientLight = Color.Lerp (MorningAmbientLight, MiddayAmbientLight, (Tod/2)-4); 
RenderSettings.fogColor = Color.Lerp (MorningFogColor,MiddayFogColor, (Tod/2)-4); 
} 
} 
//it is getting Midday 
+0

这不是一个Javascript。这是UnityScript,来自游戏引擎Unity – Cheery 2014-10-11 01:03:26

回答

0

如果你只是在寻找代码启用和禁用脚本,你可以这样来做。

假设两个脚本是在同一个对象

GetComponent(SCRIPTNAME).enabled = TRUE; (或虚假到无效)

相关问题