RaceEndDelay -= Time.deltaTime; //游戏延迟开始计时与游戏结束时
if ( RaceEndDelay <= 0 )
{
Application.LoadLevel("end"); //调用游戏结束脚本
}
}
3.2.2 储气罐控制脚本的编写
储气罐的控制脚本用于实现储气罐出现的时间,储气罐一旦触发后对车辆所产生的加速度以及加速的持续时间。
储气罐的参数定义如下:
var NitroTime:float = 5; 储气罐的最低出现时间
var NitroSpeed:float = 8; 储气罐所能产生的速度加成
var NitroAcceleration:float = 0.5; 储气罐所产生的加速度加成
储气罐一旦触发,对车辆产生作用则由下列语句来实现:
function OnTriggerEnter(collision:Collider) 功能开始
{
if ( collision.transform.parent.tag == "Racer" ) 如果是车辆触发
{
GameController.GetComponent("GameController").ItemCount -= 1; //储气罐计数减一
if ( collision.transform.parent.GetComponent("PlayerRacer") ) //如果是玩家触发
{
collision.transform.parent.GetComponent("PlayerRacer").NitroOn = true;
collision.transform.parent.GetComponent("PlayerRacer").NitroSpeed = NitroSpeed; 车辆速度变为储气罐设定的速度
collision.transform.parent.GetComponent("PlayerRacer").NitroAcceleration = NitroAcceleration; 车辆的加速度变为储气罐设定的加速度
collision.transform.parent.GetComponent("PlayerRacer").NitroTime = NitroTime; 车辆存在储气罐功能加成的时间
}
else if ( collision.transform.parent.GetComponent("EnemyRacer") )
{
collision.transform.parent.GetComponent("EnemyRacer").NitroOn = true;
collision.transform.parent.GetComponent("EnemyRacer").NitroSpeed = NitroSpeed;
collision.transform.parent.GetComponent("EnemyRacer").NitroAcceleration = NitroAcceleration;
collision.transform.parent.GetComponent("EnemyRacer").NitroTime = NitroTime;
}
for( var NitroJet:Transform in collision.transform )
{
if ( NitroJet.name == "NitroJet" )
NitroJet.particleEmitter.emit = true;
}
Destroy(gameObject); 当触发后储气罐物体消失
}
}
3.2.3 玩家车辆控制脚本的设计
玩家车辆的控制是游戏中最重要的脚本,起着控制游戏车辆的作用,玩家车辆控制脚本因具备设定玩家通过何种方式来控制车辆,车辆的基本属性参数,车辆同游戏控制器及其他脚本的结合等功能。 3d赛车游戏设计(unity3D+3dsmax+游戏引擎)(8):http://www.751com.cn/jisuanji/lunwen_990.html