UDN
Search public documentation:
MobileVehicleExampleCH
English Translation
日本語訳
한국어
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
日本語訳
한국어
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
移动设备的载具示例
于 2011 年 10 月对 UDK 进行最后测试
概述
相关主题
MobileVehicleGameInfo
class MobileVehicleGameInfo extends SimpleGame;
function RestartPlayer(Controller NewPlayer)
{
local NavigationPoint StartSpot;
local int Idx;
local array<SequenceObject> Events;
local SeqEvent_PlayerSpawned SpawnedEvent;
local Vehicle Vehicle;
if (bRestartLevel && WorldInfo.NetMode!= NM_DedicatedServer && WorldInfo.NetMode!= NM_ListenServer)
{
return;
}
StartSpot = FindPlayerStart(NewPlayer, 255);
if (StartSpot == None)
{
if (NewPlayer.StartSpot != None)
{
StartSpot = NewPlayer.StartSpot;
}
else
{
return;
}
}
if (NewPlayer.Pawn == None)
{
NewPlayer.Pawn = Spawn(class'MobileVehiclePawn',,, StartSpot.Location, StartSpot.Rotation);
}
if (NewPlayer.Pawn == None)
{
NewPlayer.GotoState('Dead');
if (PlayerController(NewPlayer) != None)
{
PlayerController(NewPlayer).ClientGotoState('Dead', 'Begin');
}
}
else
{
NewPlayer.Pawn.SetAnchor(StartSpot);
if (PlayerController(NewPlayer) != None)
{
PlayerController(NewPlayer).TimeMargin = -0.1;
StartSpot.AnchoredPawn = None;
}
NewPlayer.Pawn.LastStartSpot = PlayerStart(StartSpot);
NewPlayer.Pawn.LastStartTime = WorldInfo.TimeSeconds;
NewPlayer.Possess(NewPlayer.Pawn, false);
NewPlayer.ClientSetRotation(NewPlayer.Pawn.Rotation, true);
SetPlayerDefaults(NewPlayer.Pawn);
if (WorldInfo.GetGameSequence() != None)
{
WorldInfo.GetGameSequence().FindSeqObjectsByClass(class'SeqEvent_PlayerSpawned', true, Events);
for (Idx = 0; Idx < Events.Length; Idx++)
{
SpawnedEvent = SeqEvent_PlayerSpawned(Events[Idx]);
if (SpawnedEvent != None && SpawnedEvent.CheckActivate(NewPlayer,NewPlayer))
{
SpawnedEvent.SpawnPoint = startSpot;
SpawnedEvent.PopulateLinkedVariableValues();
}
}
}
NewPlayer.Pawn.SetCollision(false, false, false);
Vehicle = Spawn(class'MobileVehicleScorpion',,, StartSpot.Location, StartSpot.Rotation);
if (Vehicle != None)
{
Vehicle.TryToDrive(NewPlayer.Pawn);
}
}
}
defaultproperties
{
PlayerControllerClass=class'MobileVehiclePlayerController'
}
MobileVehiclePawn
class MobileVehiclePawn extends SimplePawn;
event TickSpecial(float DeltaTime);
defaultproperties
{
}
MobileVehiclePlayerController
class MobileVehiclePlayerController extends SimplePC;
function PlayerTick(float DeltaTime)
{
Super(GamePlayerController).PlayerTick(DeltaTime);
}
state PlayerDriving
{
ignores SeePlayer, HearNoise, Bump;
function ProcessMove(float DeltaTime, vector NewAccel, eDoubleClickDir DoubleClickMove, rotator DeltaRot);
function ProcessDrive(float InForward, float InStrafe, float InUp, bool InJump)
{
local Vehicle CurrentVehicle;
CurrentVehicle = Vehicle(Pawn);
if (CurrentVehicle != None)
{
bPressedJump = InJump;
CurrentVehicle.SetInputs(InForward, -InStrafe, InUp);
CheckJumpOrDuck();
}
}
function PlayerMove(float DeltaTime)
{
local float Forward, Strafe;
UpdateRotation(DeltaTime);
// Get the forward input information
Forward = PlayerInput.aForward;
// Get the strafe input information
Strafe = PlayerInput.aStrafe;
if (PlayerInput != None)
{
Forward = (((PlayerInput.aTilt.X * UnrRotToDeg) - 30.f) / 50.f) * -1.f;
Strafe = (PlayerInput.aTilt.Z * UnrRotToDeg) / 20.f;
}
// Clamp the forward to within -1.f and 1.f
Forward = FClamp(Forward, -1.f, 1.f);
// Clamp the strafe to within -1.f and 1.f
Strafe = FClamp(Strafe, -1.f, 1.f);
ProcessDrive(Forward, Strafe, PlayerInput.aUp, bPressedJump);
if (Role < ROLE_Authority)
{
ServerDrive(PlayerInput.aForward, PlayerInput.aStrafe, PlayerInput.aUp, bPressedJump, ((Rotation.Yaw & 65535) << 16) + (Rotation.Pitch & 65535));
}
bPressedJump = false;
}
event BeginState(Name PreviousStateName)
{
CleanOutSavedMoves();
}
event EndState(Name NextStateName)
{
CleanOutSavedMoves();
}
}
defaultproperties
{
}
MobileVehicleScorpion
class MobileVehicleScorpion extends SVehicle;
var DynamicLightEnvironmentComponent LightEnvironment;
defaultproperties
{
Health=300
COMOffset=(X=-40.f,Y=0.f,Z=-36.f)
UprightLiftStrength=280.f
UprightTime=1.25f
UprightTorqueStrength=500.f
bCanFlip=true
bHasHandbrake=true
GroundSpeed=950
AirSpeed=1100
HeavySuspensionShiftPercent=0.75f
MomentumMult=0.5f
NonPreferredVehiclePathMultiplier=1.5f
DrawScale=1.2f
bAlwaysRelevant=true
SquealThreshold=0.1f
SquealLatThreshold=0.f2f
LatAngleVolumeMult=30.f
EngineStartOffsetSecs=2.f
EngineStopOffsetSecs=1.f
bAttachDriver=false
BaseEyeheight=30
Eyeheight=30
Begin Object Class=AudioComponent Name=ScorpionEngineSound
SoundCue=SoundCue'MobileVehicleContent.Sounds.ScorpionEngineLoopSoundCue'
End Object
EngineSound=ScorpionEngineSound
Components.Add(ScorpionEngineSound);
Begin Object Class=AudioComponent Name=ScorpionSquealSound
SoundCue=SoundCue'MobileVehicleContent.Sounds.ScorpionSlideSoundCue'
End Object
SquealSound=ScorpionSquealSound
Components.Add(ScorpionSquealSound);
CollisionSound=SoundCue'MobileVehicleContent.Sounds.ScorpionCollideSoundCue'
EnterVehicleSound=SoundCue'MobileVehicleContent.Sounds.ScorpionStartSoundCue'
Begin Object Name=CollisionCylinder
BlockNonZeroExtent=false
BlockZeroExtent=false
BlockActors=false
BlockRigidBody=false
CollideActors=false
CollisionHeight=40.f
CollisionRadius=100.f
Translation=(X=-25.f)
End Object
Begin Object Class=DynamicLightEnvironmentComponent Name=MyLightEnvironment
bSynthesizeSHLight=true
bIsCharacterLightEnvironment=true
bUseBooleanEnvironmentShadowing=true
End Object
Components.Add(MyLightEnvironment)
LightEnvironment=MyLightEnvironment
Begin Object Name=SVehicleMesh
CastShadow=true
bCastDynamicShadow=true
bOverrideAttachmentOwnerVisibility=true
bAcceptsDynamicDecals=false
bPerBoneMotionBlur=true
LightEnvironment=MyLightEnvironment
SkeletalMesh=SkeletalMesh'MobileVehicleContent.SkeletalMeshes.ScorpionSkeletalMesh'
AnimTreeTemplate=AnimTree'MobileVehicleContent.AnimTrees.ScorpionAnimTree'
PhysicsAsset=PhysicsAsset'MobileVehicleContent.PhysicsAssets.ScorpionPhysicsAsset'
AnimSets.Add(AnimSet'MobileVehicleContent.AnimSets.ScorpionAnimSet')
RBCollideWithChannels=(Default=true,BlockingVolume=true,GameplayPhysics=true,EffectPhysics=true,Vehicle=true,Untitled4=true)
End Object
Begin Object Class=UDKVehicleSimCar Name=SimObject
WheelSuspensionStiffness=100.f
WheelSuspensionDamping=3.f
WheelSuspensionBias=0.1f
ChassisTorqueScale=0.f
MaxBrakeTorque=5.f
StopThreshold=100
MaxSteerAngleCurve=(Points=((InVal=0.f,OutVal=45.f),(InVal=600.f,OutVal=15.f),(InVal=1100.f,OutVal=10.f),(InVal=1300.f,OutVal=6.f),(InVal=1600.f,OutVal=1.f)))
SteerSpeed=110
LSDFactor=0.f
TorqueVSpeedCurve=(Points=((InVal=-600.f,OutVal=0.f),(InVal=-300.f,OutVal=80.f),(InVal=0.f,OutVal=130.f),(InVal=950.f,OutVal=130.f),(InVal=1050.f,OutVal=10.f),(InVal=1150.f,OutVal=0.f)))
EngineRPMCurve=(Points=((InVal=-500.f,OutVal=2500.f),(InVal=0.f,OutVal=500.f),(InVal=549.f,OutVal=3500.f),(InVal=550.f,OutVal=1000.f),(InVal=849.f,OutVal=4500.f),(InVal=850.f,OutVal=1500.f),(InVal=1100.f,OutVal=5000.f)))
EngineBrakeFactor=0.f25f
ThrottleSpeed=0.2f
WheelInertia=0.2f
NumWheelsForFullSteering=4
SteeringReductionFactor=0.f
SteeringReductionMinSpeed=1100.f
SteeringReductionSpeed=1400.f
bAutoHandbrake=true
bClampedFrictionModel=true
FrontalCollisionGripFactor=0.18f
ConsoleHardTurnGripFactor=1.f
HardTurnMotorTorque=0.7f
SpeedBasedTurnDamping=20.f
AirControlTurnTorque=40.f
InAirUprightMaxTorque=15.f
InAirUprightTorqueFactor=-30.f
WheelLongExtremumSlip=0.1f
WheelLongExtremumValue=1.f
WheelLongAsymptoteSlip=2.f
WheelLongAsymptoteValue=0.6f
WheelLatExtremumSlip=0.35f
WheelLatExtremumValue=0.9f
WheelLatAsymptoteSlip=1.4f
WheelLatAsymptoteValue=0.9f
bAutoDrive=false
AutoDriveSteer=0.3f
End Object
SimObj=SimObject
Components.Add(SimObject)
Begin Object Class=MobileVehicleScorpionWheel Name=RRWheel
BoneName="B_R_Tire"
BoneOffset=(X=0.f,Y=20.f,Z=0.f)
SkelControlName="B_R_Tire_Cont"
End Object
Wheels(0)=RRWheel
Begin Object Class=MobileVehicleScorpionWheel Name=LRWheel
BoneName="B_L_Tire"
BoneOffset=(X=0.f,Y=-20.f,Z=0.f)
SkelControlName="B_L_Tire_Cont"
End Object
Wheels(1)=LRWheel
Begin Object Class=MobileVehicleScorpionWheel Name=RFWheel
BoneName="F_R_Tire"
BoneOffset=(X=0.f,Y=20.f,Z=0.f)
SteerFactor=1.f
LongSlipFactor=2.f
LatSlipFactor=3.f
HandbrakeLongSlipFactor=0.8
HandbrakeLatSlipFactor=0.8
SkelControlName="F_R_Tire_Cont"
End Object
Wheels(2)=RFWheel
Begin Object Class=MobileVehicleScorpionWheel Name=LFWheel
BoneName="F_L_Tire"
BoneOffset=(X=0.f,Y=-20.f,Z=0.f)
SteerFactor=1.f
LongSlipFactor=2.f
LatSlipFactor=3.f
HandbrakeLongSlipFactor=0.8f
HandbrakeLatSlipFactor=0.8f
SkelControlName="F_L_Tire_Cont"
End Object
Wheels(3)=LFWheel
}
MobileVehicleScorpionWheel
class MobileVehicleScorpionWheel extends UDKVehicleWheel;
defaultproperties
{
WheelRadius=27
SuspensionTravel=40
bPoweredWheel=true
SteerFactor=0.0
LongSlipFactor=2.0
LatSlipFactor=2.75
HandbrakeLongSlipFactor=0.7
HandbrakeLatSlipFactor=0.3
ParkedSlipFactor=10.0
}
下载
- 下载这个示例中使用的内容和代码。
