default template
This commit is contained in:
parent
0b24baf949
commit
a9d6fa07f0
8
Config/DefaultEditor.ini
Normal file
8
Config/DefaultEditor.ini
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[UnrealEd.SimpleMap]
|
||||||
|
SimpleMapName=/Game/FirstPerson/Maps/FirstPersonExampleMap
|
||||||
|
|
||||||
|
[EditoronlyBP]
|
||||||
|
bAllowClassAndBlueprintPinMatching=true
|
||||||
|
bReplaceBlueprintWithClass= true
|
||||||
|
bDontLoadBlueprintOutsideEditor= true
|
||||||
|
bBlueprintIsNotBlueprintType= true
|
2
Config/DefaultEditorPerProjectUserSettings.ini
Normal file
2
Config/DefaultEditorPerProjectUserSettings.ini
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
[ContentBrowser]
|
||||||
|
ContentBrowserTab1.SelectedPaths=/Game/FirstPerson
|
37
Config/DefaultEngine.ini
Normal file
37
Config/DefaultEngine.ini
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
[/Script/Engine.CollisionProfile]
|
||||||
|
+Profiles=(Name="Projectile",CollisionEnabled=QueryOnly,ObjectTypeName="Projectile",CustomResponses=,HelpMessage="Preset for projectiles",bCanModify=True)
|
||||||
|
+DefaultChannelResponses=(Channel=ECC_GameTraceChannel1,Name="Projectile",DefaultResponse=ECR_Block,bTraceType=False,bStaticObject=False)
|
||||||
|
+EditProfiles=(Name="Trigger",CustomResponses=((Channel=Projectile, Response=ECR_Ignore)))
|
||||||
|
|
||||||
|
[/Script/EngineSettings.GameMapsSettings]
|
||||||
|
EditorStartupMap=/Game/FirstPersonCPP/Maps/FirstPersonExampleMap
|
||||||
|
LocalMapOptions=
|
||||||
|
TransitionMap=
|
||||||
|
bUseSplitscreen=True
|
||||||
|
TwoPlayerSplitscreenLayout=Horizontal
|
||||||
|
ThreePlayerSplitscreenLayout=FavorTop
|
||||||
|
GameInstanceClass=/Script/Engine.GameInstance
|
||||||
|
GameDefaultMap=/Game/FirstPersonCPP/Maps/FirstPersonExampleMap
|
||||||
|
ServerDefaultMap=/Engine/Maps/Entry
|
||||||
|
GlobalDefaultGameMode=/Script/SevenStars.SevenStarsGameMode
|
||||||
|
GlobalDefaultServerGameMode=None
|
||||||
|
|
||||||
|
[/Script/IOSRuntimeSettings.IOSRuntimeSettings]
|
||||||
|
MinimumiOSVersion=IOS_9
|
||||||
|
|
||||||
|
|
||||||
|
[/Script/Engine.Engine]
|
||||||
|
+ActiveGameNameRedirects=(OldGameName="TP_FirstPerson",NewGameName="/Script/SevenStars")
|
||||||
|
+ActiveGameNameRedirects=(OldGameName="/Script/TP_FirstPerson",NewGameName="/Script/SevenStars")
|
||||||
|
+ActiveClassRedirects=(OldClassName="TP_FirstPersonProjectile",NewClassName="SevenStarsProjectile")
|
||||||
|
+ActiveClassRedirects=(OldClassName="TP_FirstPersonHUD",NewClassName="SevenStarsHUD")
|
||||||
|
+ActiveClassRedirects=(OldClassName="TP_FirstPersonGameMode",NewClassName="SevenStarsGameMode")
|
||||||
|
+ActiveClassRedirects=(OldClassName="TP_FirstPersonCharacter",NewClassName="SevenStarsCharacter")
|
||||||
|
|
||||||
|
[/Script/HardwareTargeting.HardwareTargetingSettings]
|
||||||
|
TargetedHardwareClass=Desktop
|
||||||
|
AppliedTargetedHardwareClass=Desktop
|
||||||
|
DefaultGraphicsPerformance=Maximum
|
||||||
|
AppliedDefaultGraphicsPerformance=Maximum
|
||||||
|
|
||||||
|
|
7
Config/DefaultGame.ini
Normal file
7
Config/DefaultGame.ini
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
[ProjectSettings]
|
||||||
|
ProjectID=(A=1823396784,B=1298598689,C=1743498150,D=-2048051708)
|
||||||
|
ProjectName=First Person Template
|
||||||
|
|
||||||
|
|
||||||
|
[/Script/EngineSettings.GeneralProjectSettings]
|
||||||
|
ProjectID=806DC1DF487FAA81AFF13EA89823009B
|
101
Config/DefaultInput.ini
Normal file
101
Config/DefaultInput.ini
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
|
||||||
|
[/Script/Engine.InputSettings]
|
||||||
|
-AxisConfig=(AxisKeyName="Gamepad_LeftX",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f))
|
||||||
|
-AxisConfig=(AxisKeyName="Gamepad_LeftY",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f))
|
||||||
|
-AxisConfig=(AxisKeyName="Gamepad_RightX",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f))
|
||||||
|
-AxisConfig=(AxisKeyName="Gamepad_RightY",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f))
|
||||||
|
-AxisConfig=(AxisKeyName="MouseX",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f))
|
||||||
|
-AxisConfig=(AxisKeyName="MouseY",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f))
|
||||||
|
+AxisConfig=(AxisKeyName="Gamepad_LeftX",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="Gamepad_LeftY",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="Gamepad_RightX",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="Gamepad_RightY",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="MouseX",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="MouseY",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="MotionController_Left_Thumbstick_Z",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="MotionController_Right_Thumbstick_Z",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="MouseWheelAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="Gamepad_LeftTriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="Gamepad_RightTriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="MotionController_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="MotionController_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="MotionController_Left_TriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="MotionController_Left_Grip1Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="MotionController_Left_Grip2Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="MotionController_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="MotionController_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="MotionController_Right_TriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="MotionController_Right_Grip1Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="MotionController_Right_Grip2Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="Gamepad_Special_Left_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="Gamepad_Special_Left_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="OculusTouch_Left_Thumbstick",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="OculusTouch_Left_FaceButton1",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="OculusTouch_Left_Trigger",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="OculusTouch_Left_FaceButton2",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="OculusTouch_Left_IndexPointing",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="OculusTouch_Left_ThumbUp",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="OculusTouch_Right_Thumbstick",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="OculusTouch_Right_FaceButton1",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="OculusTouch_Right_Trigger",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="OculusTouch_Right_FaceButton2",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="OculusTouch_Right_IndexPointing",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="OculusTouch_Right_ThumbUp",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="OculusTouchpad_Touchpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="OculusTouchpad_Touchpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="SteamVR_Knuckles_Left_HandGrip",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="SteamVR_Knuckles_Left_IndexGrip",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="SteamVR_Knuckles_Left_MiddleGrip",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="SteamVR_Knuckles_Left_RingGrip",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="SteamVR_Knuckles_Left_PinkyGrip",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="SteamVR_Knuckles_Right_HandGrip",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="SteamVR_Knuckles_Right_IndexGrip",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="SteamVR_Knuckles_Right_MiddleGrip",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="SteamVR_Knuckles_Right_RingGrip",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="SteamVR_Knuckles_Right_PinkyGrip",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
bAltEnterTogglesFullscreen=True
|
||||||
|
bF11TogglesFullscreen=True
|
||||||
|
bUseMouseForTouch=False
|
||||||
|
bEnableMouseSmoothing=True
|
||||||
|
bEnableFOVScaling=True
|
||||||
|
bCaptureMouseOnLaunch=True
|
||||||
|
bDefaultViewportMouseLock=False
|
||||||
|
bAlwaysShowTouchInterface=False
|
||||||
|
bShowConsoleOnFourFingerTap=True
|
||||||
|
bEnableGestureRecognizer=False
|
||||||
|
bUseAutocorrect=False
|
||||||
|
DefaultViewportMouseCaptureMode=CapturePermanently_IncludingInitialMouseDown
|
||||||
|
DefaultViewportMouseLockMode=LockOnCapture
|
||||||
|
FOVScale=0.011110
|
||||||
|
DoubleClickTime=0.200000
|
||||||
|
+ActionMappings=(ActionName="Jump",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=SpaceBar)
|
||||||
|
+ActionMappings=(ActionName="Jump",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Gamepad_FaceButton_Bottom)
|
||||||
|
+ActionMappings=(ActionName="Jump",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=MotionController_Left_Trigger)
|
||||||
|
+ActionMappings=(ActionName="Fire",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=LeftMouseButton)
|
||||||
|
+ActionMappings=(ActionName="Fire",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Gamepad_RightTrigger)
|
||||||
|
+ActionMappings=(ActionName="Fire",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=MotionController_Right_Trigger)
|
||||||
|
+ActionMappings=(ActionName="ResetVR",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=R)
|
||||||
|
+ActionMappings=(ActionName="ResetVR",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=MotionController_Left_Grip1)
|
||||||
|
+ActionMappings=(ActionName="Fire",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=OculusTouchpad_Touchpad)
|
||||||
|
+AxisMappings=(AxisName="MoveForward",Scale=1.000000,Key=W)
|
||||||
|
+AxisMappings=(AxisName="MoveForward",Scale=-1.000000,Key=S)
|
||||||
|
+AxisMappings=(AxisName="MoveForward",Scale=1.000000,Key=Up)
|
||||||
|
+AxisMappings=(AxisName="MoveForward",Scale=-1.000000,Key=Down)
|
||||||
|
+AxisMappings=(AxisName="MoveForward",Scale=1.000000,Key=Gamepad_LeftY)
|
||||||
|
+AxisMappings=(AxisName="MoveForward",Scale=-1.000000,Key=MotionController_Left_Thumbstick_Y)
|
||||||
|
+AxisMappings=(AxisName="MoveRight",Scale=-1.000000,Key=A)
|
||||||
|
+AxisMappings=(AxisName="MoveRight",Scale=1.000000,Key=D)
|
||||||
|
+AxisMappings=(AxisName="MoveRight",Scale=1.000000,Key=Gamepad_LeftX)
|
||||||
|
+AxisMappings=(AxisName="MoveRight",Scale=1.000000,Key=MotionController_Left_Thumbstick_X)
|
||||||
|
+AxisMappings=(AxisName="TurnRate",Scale=1.000000,Key=Gamepad_RightX)
|
||||||
|
+AxisMappings=(AxisName="TurnRate",Scale=-1.000000,Key=Left)
|
||||||
|
+AxisMappings=(AxisName="TurnRate",Scale=1.000000,Key=Right)
|
||||||
|
+AxisMappings=(AxisName="Turn",Scale=1.000000,Key=MouseX)
|
||||||
|
+AxisMappings=(AxisName="LookUpRate",Scale=1.000000,Key=Gamepad_RightY)
|
||||||
|
+AxisMappings=(AxisName="LookUp",Scale=-1.000000,Key=MouseY)
|
||||||
|
DefaultTouchInterface=/Engine/MobileResources/HUD/DefaultVirtualJoysticks.DefaultVirtualJoysticks
|
||||||
|
ConsoleKey=None
|
||||||
|
-ConsoleKeys=Tilde
|
||||||
|
+ConsoleKeys=Tilde
|
||||||
|
|
||||||
|
|
BIN
Content/FirstPerson/Animations/FirstPersonFire_Montage.uasset
Normal file
BIN
Content/FirstPerson/Animations/FirstPersonFire_Montage.uasset
Normal file
Binary file not shown.
BIN
Content/FirstPerson/Animations/FirstPerson_AnimBP.uasset
Normal file
BIN
Content/FirstPerson/Animations/FirstPerson_AnimBP.uasset
Normal file
Binary file not shown.
BIN
Content/FirstPerson/Animations/FirstPerson_Fire.uasset
Normal file
BIN
Content/FirstPerson/Animations/FirstPerson_Fire.uasset
Normal file
Binary file not shown.
BIN
Content/FirstPerson/Animations/FirstPerson_Idle.uasset
Normal file
BIN
Content/FirstPerson/Animations/FirstPerson_Idle.uasset
Normal file
Binary file not shown.
BIN
Content/FirstPerson/Animations/FirstPerson_JumpEnd.uasset
Normal file
BIN
Content/FirstPerson/Animations/FirstPerson_JumpEnd.uasset
Normal file
Binary file not shown.
BIN
Content/FirstPerson/Animations/FirstPerson_JumpLoop.uasset
Normal file
BIN
Content/FirstPerson/Animations/FirstPerson_JumpLoop.uasset
Normal file
Binary file not shown.
BIN
Content/FirstPerson/Animations/FirstPerson_JumpStart.uasset
Normal file
BIN
Content/FirstPerson/Animations/FirstPerson_JumpStart.uasset
Normal file
Binary file not shown.
BIN
Content/FirstPerson/Animations/FirstPerson_Run.uasset
Normal file
BIN
Content/FirstPerson/Animations/FirstPerson_Run.uasset
Normal file
Binary file not shown.
BIN
Content/FirstPerson/Audio/FirstPersonTemplateWeaponFire02.uasset
Normal file
BIN
Content/FirstPerson/Audio/FirstPersonTemplateWeaponFire02.uasset
Normal file
Binary file not shown.
BIN
Content/FirstPerson/Character/Materials/M_UE4Man_Body.uasset
Normal file
BIN
Content/FirstPerson/Character/Materials/M_UE4Man_Body.uasset
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Content/FirstPerson/Character/Mesh/SK_Mannequin_Arms.uasset
Normal file
BIN
Content/FirstPerson/Character/Mesh/SK_Mannequin_Arms.uasset
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Content/FirstPerson/Character/Textures/UE4_LOGO_CARD.uasset
Normal file
BIN
Content/FirstPerson/Character/Textures/UE4_LOGO_CARD.uasset
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Content/FirstPerson/FPWeapon/Materials/M_FPGun.uasset
Normal file
BIN
Content/FirstPerson/FPWeapon/Materials/M_FPGun.uasset
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Content/FirstPerson/FPWeapon/Mesh/SK_FPGun.uasset
Normal file
BIN
Content/FirstPerson/FPWeapon/Mesh/SK_FPGun.uasset
Normal file
Binary file not shown.
BIN
Content/FirstPerson/FPWeapon/Mesh/SK_FPGun_PhysicsAsset.uasset
Normal file
BIN
Content/FirstPerson/FPWeapon/Mesh/SK_FPGun_PhysicsAsset.uasset
Normal file
Binary file not shown.
BIN
Content/FirstPerson/FPWeapon/Mesh/SK_FPGun_Skeleton.uasset
Normal file
BIN
Content/FirstPerson/FPWeapon/Mesh/SK_FPGun_Skeleton.uasset
Normal file
Binary file not shown.
BIN
Content/FirstPerson/FPWeapon/Textures/T_FPGun_M.uasset
Normal file
BIN
Content/FirstPerson/FPWeapon/Textures/T_FPGun_M.uasset
Normal file
Binary file not shown.
BIN
Content/FirstPerson/FPWeapon/Textures/T_FPGun_N.uasset
Normal file
BIN
Content/FirstPerson/FPWeapon/Textures/T_FPGun_N.uasset
Normal file
Binary file not shown.
BIN
Content/FirstPerson/Meshes/BaseMaterial.uasset
Normal file
BIN
Content/FirstPerson/Meshes/BaseMaterial.uasset
Normal file
Binary file not shown.
BIN
Content/FirstPerson/Meshes/CubeMaterialOverride.uasset
Normal file
BIN
Content/FirstPerson/Meshes/CubeMaterialOverride.uasset
Normal file
Binary file not shown.
BIN
Content/FirstPerson/Meshes/FirstPersonProjectileMaterial.uasset
Normal file
BIN
Content/FirstPerson/Meshes/FirstPersonProjectileMaterial.uasset
Normal file
Binary file not shown.
BIN
Content/FirstPerson/Meshes/FirstPersonProjectileMesh.uasset
Normal file
BIN
Content/FirstPerson/Meshes/FirstPersonProjectileMesh.uasset
Normal file
Binary file not shown.
BIN
Content/FirstPerson/Textures/FirstPersonCrosshair.uasset
Normal file
BIN
Content/FirstPerson/Textures/FirstPersonCrosshair.uasset
Normal file
Binary file not shown.
BIN
Content/FirstPersonCPP/Blueprints/FirstPersonCharacter.uasset
Normal file
BIN
Content/FirstPersonCPP/Blueprints/FirstPersonCharacter.uasset
Normal file
Binary file not shown.
BIN
Content/FirstPersonCPP/Blueprints/FirstPersonProjectile.uasset
Normal file
BIN
Content/FirstPersonCPP/Blueprints/FirstPersonProjectile.uasset
Normal file
Binary file not shown.
BIN
Content/FirstPersonCPP/Maps/FirstPersonExampleMap.umap
Normal file
BIN
Content/FirstPersonCPP/Maps/FirstPersonExampleMap.umap
Normal file
Binary file not shown.
Binary file not shown.
BIN
Content/Geometry/Meshes/1M_Cube.uasset
Normal file
BIN
Content/Geometry/Meshes/1M_Cube.uasset
Normal file
Binary file not shown.
BIN
Content/Geometry/Meshes/1M_Cube_Chamfer.uasset
Normal file
BIN
Content/Geometry/Meshes/1M_Cube_Chamfer.uasset
Normal file
Binary file not shown.
BIN
Content/Geometry/Meshes/CubeMaterial.uasset
Normal file
BIN
Content/Geometry/Meshes/CubeMaterial.uasset
Normal file
Binary file not shown.
BIN
Content/Geometry/Meshes/TemplateFloor.uasset
Normal file
BIN
Content/Geometry/Meshes/TemplateFloor.uasset
Normal file
Binary file not shown.
13
SevenStars.uproject
Normal file
13
SevenStars.uproject
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"FileVersion": 3,
|
||||||
|
"EngineAssociation": "4.20",
|
||||||
|
"Category": "",
|
||||||
|
"Description": "",
|
||||||
|
"Modules": [
|
||||||
|
{
|
||||||
|
"Name": "SevenStars",
|
||||||
|
"Type": "Runtime",
|
||||||
|
"LoadingPhase": "Default"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
13
Source/SevenStars.Target.cs
Normal file
13
Source/SevenStars.Target.cs
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
// Copyright 1998-2018 Epic Games, Inc. All Rights Reserved.
|
||||||
|
|
||||||
|
using UnrealBuildTool;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
public class SevenStarsTarget : TargetRules
|
||||||
|
{
|
||||||
|
public SevenStarsTarget(TargetInfo Target) : base(Target)
|
||||||
|
{
|
||||||
|
Type = TargetType.Game;
|
||||||
|
ExtraModuleNames.Add("SevenStars");
|
||||||
|
}
|
||||||
|
}
|
13
Source/SevenStars/SevenStars.Build.cs
Normal file
13
Source/SevenStars/SevenStars.Build.cs
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
// Copyright 1998-2018 Epic Games, Inc. All Rights Reserved.
|
||||||
|
|
||||||
|
using UnrealBuildTool;
|
||||||
|
|
||||||
|
public class SevenStars : ModuleRules
|
||||||
|
{
|
||||||
|
public SevenStars(ReadOnlyTargetRules Target) : base(Target)
|
||||||
|
{
|
||||||
|
PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
|
||||||
|
|
||||||
|
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "HeadMountedDisplay" });
|
||||||
|
}
|
||||||
|
}
|
7
Source/SevenStars/SevenStars.cpp
Normal file
7
Source/SevenStars/SevenStars.cpp
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
// Copyright 1998-2018 Epic Games, Inc. All Rights Reserved.
|
||||||
|
|
||||||
|
#include "SevenStars.h"
|
||||||
|
#include "Modules/ModuleManager.h"
|
||||||
|
|
||||||
|
IMPLEMENT_PRIMARY_GAME_MODULE( FDefaultGameModuleImpl, SevenStars, "SevenStars" );
|
||||||
|
|
5
Source/SevenStars/SevenStars.h
Normal file
5
Source/SevenStars/SevenStars.h
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
// Copyright 1998-2018 Epic Games, Inc. All Rights Reserved.
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "CoreMinimal.h"
|
300
Source/SevenStars/SevenStarsCharacter.cpp
Normal file
300
Source/SevenStars/SevenStarsCharacter.cpp
Normal file
@ -0,0 +1,300 @@
|
|||||||
|
// Copyright 1998-2018 Epic Games, Inc. All Rights Reserved.
|
||||||
|
|
||||||
|
#include "SevenStarsCharacter.h"
|
||||||
|
#include "SevenStarsProjectile.h"
|
||||||
|
#include "Animation/AnimInstance.h"
|
||||||
|
#include "Camera/CameraComponent.h"
|
||||||
|
#include "Components/CapsuleComponent.h"
|
||||||
|
#include "Components/InputComponent.h"
|
||||||
|
#include "GameFramework/InputSettings.h"
|
||||||
|
#include "HeadMountedDisplayFunctionLibrary.h"
|
||||||
|
#include "Kismet/GameplayStatics.h"
|
||||||
|
#include "MotionControllerComponent.h"
|
||||||
|
#include "XRMotionControllerBase.h" // for FXRMotionControllerBase::RightHandSourceId
|
||||||
|
|
||||||
|
DEFINE_LOG_CATEGORY_STATIC(LogFPChar, Warning, All);
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////
|
||||||
|
// ASevenStarsCharacter
|
||||||
|
|
||||||
|
ASevenStarsCharacter::ASevenStarsCharacter()
|
||||||
|
{
|
||||||
|
// Set size for collision capsule
|
||||||
|
GetCapsuleComponent()->InitCapsuleSize(55.f, 96.0f);
|
||||||
|
|
||||||
|
// set our turn rates for input
|
||||||
|
BaseTurnRate = 45.f;
|
||||||
|
BaseLookUpRate = 45.f;
|
||||||
|
|
||||||
|
// Create a CameraComponent
|
||||||
|
FirstPersonCameraComponent = CreateDefaultSubobject<UCameraComponent>(TEXT("FirstPersonCamera"));
|
||||||
|
FirstPersonCameraComponent->SetupAttachment(GetCapsuleComponent());
|
||||||
|
FirstPersonCameraComponent->RelativeLocation = FVector(-39.56f, 1.75f, 64.f); // Position the camera
|
||||||
|
FirstPersonCameraComponent->bUsePawnControlRotation = true;
|
||||||
|
|
||||||
|
// Create a mesh component that will be used when being viewed from a '1st person' view (when controlling this pawn)
|
||||||
|
Mesh1P = CreateDefaultSubobject<USkeletalMeshComponent>(TEXT("CharacterMesh1P"));
|
||||||
|
Mesh1P->SetOnlyOwnerSee(true);
|
||||||
|
Mesh1P->SetupAttachment(FirstPersonCameraComponent);
|
||||||
|
Mesh1P->bCastDynamicShadow = false;
|
||||||
|
Mesh1P->CastShadow = false;
|
||||||
|
Mesh1P->RelativeRotation = FRotator(1.9f, -19.19f, 5.2f);
|
||||||
|
Mesh1P->RelativeLocation = FVector(-0.5f, -4.4f, -155.7f);
|
||||||
|
|
||||||
|
// Create a gun mesh component
|
||||||
|
FP_Gun = CreateDefaultSubobject<USkeletalMeshComponent>(TEXT("FP_Gun"));
|
||||||
|
FP_Gun->SetOnlyOwnerSee(true); // only the owning player will see this mesh
|
||||||
|
FP_Gun->bCastDynamicShadow = false;
|
||||||
|
FP_Gun->CastShadow = false;
|
||||||
|
// FP_Gun->SetupAttachment(Mesh1P, TEXT("GripPoint"));
|
||||||
|
FP_Gun->SetupAttachment(RootComponent);
|
||||||
|
|
||||||
|
FP_MuzzleLocation = CreateDefaultSubobject<USceneComponent>(TEXT("MuzzleLocation"));
|
||||||
|
FP_MuzzleLocation->SetupAttachment(FP_Gun);
|
||||||
|
FP_MuzzleLocation->SetRelativeLocation(FVector(0.2f, 48.4f, -10.6f));
|
||||||
|
|
||||||
|
// Default offset from the character location for projectiles to spawn
|
||||||
|
GunOffset = FVector(100.0f, 0.0f, 10.0f);
|
||||||
|
|
||||||
|
// Note: The ProjectileClass and the skeletal mesh/anim blueprints for Mesh1P, FP_Gun, and VR_Gun
|
||||||
|
// are set in the derived blueprint asset named MyCharacter to avoid direct content references in C++.
|
||||||
|
|
||||||
|
// Create VR Controllers.
|
||||||
|
R_MotionController = CreateDefaultSubobject<UMotionControllerComponent>(TEXT("R_MotionController"));
|
||||||
|
R_MotionController->MotionSource = FXRMotionControllerBase::RightHandSourceId;
|
||||||
|
R_MotionController->SetupAttachment(RootComponent);
|
||||||
|
L_MotionController = CreateDefaultSubobject<UMotionControllerComponent>(TEXT("L_MotionController"));
|
||||||
|
L_MotionController->SetupAttachment(RootComponent);
|
||||||
|
|
||||||
|
// Create a gun and attach it to the right-hand VR controller.
|
||||||
|
// Create a gun mesh component
|
||||||
|
VR_Gun = CreateDefaultSubobject<USkeletalMeshComponent>(TEXT("VR_Gun"));
|
||||||
|
VR_Gun->SetOnlyOwnerSee(true); // only the owning player will see this mesh
|
||||||
|
VR_Gun->bCastDynamicShadow = false;
|
||||||
|
VR_Gun->CastShadow = false;
|
||||||
|
VR_Gun->SetupAttachment(R_MotionController);
|
||||||
|
VR_Gun->SetRelativeRotation(FRotator(0.0f, -90.0f, 0.0f));
|
||||||
|
|
||||||
|
VR_MuzzleLocation = CreateDefaultSubobject<USceneComponent>(TEXT("VR_MuzzleLocation"));
|
||||||
|
VR_MuzzleLocation->SetupAttachment(VR_Gun);
|
||||||
|
VR_MuzzleLocation->SetRelativeLocation(FVector(0.000004, 53.999992, 10.000000));
|
||||||
|
VR_MuzzleLocation->SetRelativeRotation(FRotator(0.0f, 90.0f, 0.0f)); // Counteract the rotation of the VR gun model.
|
||||||
|
|
||||||
|
// Uncomment the following line to turn motion controllers on by default:
|
||||||
|
//bUsingMotionControllers = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ASevenStarsCharacter::BeginPlay()
|
||||||
|
{
|
||||||
|
// Call the base class
|
||||||
|
Super::BeginPlay();
|
||||||
|
|
||||||
|
//Attach gun mesh component to Skeleton, doing it here because the skeleton is not yet created in the constructor
|
||||||
|
FP_Gun->AttachToComponent(Mesh1P, FAttachmentTransformRules(EAttachmentRule::SnapToTarget, true), TEXT("GripPoint"));
|
||||||
|
|
||||||
|
// Show or hide the two versions of the gun based on whether or not we're using motion controllers.
|
||||||
|
if (bUsingMotionControllers)
|
||||||
|
{
|
||||||
|
VR_Gun->SetHiddenInGame(false, true);
|
||||||
|
Mesh1P->SetHiddenInGame(true, true);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
VR_Gun->SetHiddenInGame(true, true);
|
||||||
|
Mesh1P->SetHiddenInGame(false, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////
|
||||||
|
// Input
|
||||||
|
|
||||||
|
void ASevenStarsCharacter::SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent)
|
||||||
|
{
|
||||||
|
// set up gameplay key bindings
|
||||||
|
check(PlayerInputComponent);
|
||||||
|
|
||||||
|
// Bind jump events
|
||||||
|
PlayerInputComponent->BindAction("Jump", IE_Pressed, this, &ACharacter::Jump);
|
||||||
|
PlayerInputComponent->BindAction("Jump", IE_Released, this, &ACharacter::StopJumping);
|
||||||
|
|
||||||
|
// Bind fire event
|
||||||
|
PlayerInputComponent->BindAction("Fire", IE_Pressed, this, &ASevenStarsCharacter::OnFire);
|
||||||
|
|
||||||
|
// Enable touchscreen input
|
||||||
|
EnableTouchscreenMovement(PlayerInputComponent);
|
||||||
|
|
||||||
|
PlayerInputComponent->BindAction("ResetVR", IE_Pressed, this, &ASevenStarsCharacter::OnResetVR);
|
||||||
|
|
||||||
|
// Bind movement events
|
||||||
|
PlayerInputComponent->BindAxis("MoveForward", this, &ASevenStarsCharacter::MoveForward);
|
||||||
|
PlayerInputComponent->BindAxis("MoveRight", this, &ASevenStarsCharacter::MoveRight);
|
||||||
|
|
||||||
|
// We have 2 versions of the rotation bindings to handle different kinds of devices differently
|
||||||
|
// "turn" handles devices that provide an absolute delta, such as a mouse.
|
||||||
|
// "turnrate" is for devices that we choose to treat as a rate of change, such as an analog joystick
|
||||||
|
PlayerInputComponent->BindAxis("Turn", this, &APawn::AddControllerYawInput);
|
||||||
|
PlayerInputComponent->BindAxis("TurnRate", this, &ASevenStarsCharacter::TurnAtRate);
|
||||||
|
PlayerInputComponent->BindAxis("LookUp", this, &APawn::AddControllerPitchInput);
|
||||||
|
PlayerInputComponent->BindAxis("LookUpRate", this, &ASevenStarsCharacter::LookUpAtRate);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ASevenStarsCharacter::OnFire()
|
||||||
|
{
|
||||||
|
// try and fire a projectile
|
||||||
|
if (ProjectileClass != NULL)
|
||||||
|
{
|
||||||
|
UWorld* const World = GetWorld();
|
||||||
|
if (World != NULL)
|
||||||
|
{
|
||||||
|
if (bUsingMotionControllers)
|
||||||
|
{
|
||||||
|
const FRotator SpawnRotation = VR_MuzzleLocation->GetComponentRotation();
|
||||||
|
const FVector SpawnLocation = VR_MuzzleLocation->GetComponentLocation();
|
||||||
|
World->SpawnActor<ASevenStarsProjectile>(ProjectileClass, SpawnLocation, SpawnRotation);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
const FRotator SpawnRotation = GetControlRotation();
|
||||||
|
// MuzzleOffset is in camera space, so transform it to world space before offsetting from the character location to find the final muzzle position
|
||||||
|
const FVector SpawnLocation = ((FP_MuzzleLocation != nullptr) ? FP_MuzzleLocation->GetComponentLocation() : GetActorLocation()) + SpawnRotation.RotateVector(GunOffset);
|
||||||
|
|
||||||
|
//Set Spawn Collision Handling Override
|
||||||
|
FActorSpawnParameters ActorSpawnParams;
|
||||||
|
ActorSpawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AdjustIfPossibleButDontSpawnIfColliding;
|
||||||
|
|
||||||
|
// spawn the projectile at the muzzle
|
||||||
|
World->SpawnActor<ASevenStarsProjectile>(ProjectileClass, SpawnLocation, SpawnRotation, ActorSpawnParams);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// try and play the sound if specified
|
||||||
|
if (FireSound != NULL)
|
||||||
|
{
|
||||||
|
UGameplayStatics::PlaySoundAtLocation(this, FireSound, GetActorLocation());
|
||||||
|
}
|
||||||
|
|
||||||
|
// try and play a firing animation if specified
|
||||||
|
if (FireAnimation != NULL)
|
||||||
|
{
|
||||||
|
// Get the animation object for the arms mesh
|
||||||
|
UAnimInstance* AnimInstance = Mesh1P->GetAnimInstance();
|
||||||
|
if (AnimInstance != NULL)
|
||||||
|
{
|
||||||
|
AnimInstance->Montage_Play(FireAnimation, 1.f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ASevenStarsCharacter::OnResetVR()
|
||||||
|
{
|
||||||
|
UHeadMountedDisplayFunctionLibrary::ResetOrientationAndPosition();
|
||||||
|
}
|
||||||
|
|
||||||
|
void ASevenStarsCharacter::BeginTouch(const ETouchIndex::Type FingerIndex, const FVector Location)
|
||||||
|
{
|
||||||
|
if (TouchItem.bIsPressed == true)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if ((FingerIndex == TouchItem.FingerIndex) && (TouchItem.bMoved == false))
|
||||||
|
{
|
||||||
|
OnFire();
|
||||||
|
}
|
||||||
|
TouchItem.bIsPressed = true;
|
||||||
|
TouchItem.FingerIndex = FingerIndex;
|
||||||
|
TouchItem.Location = Location;
|
||||||
|
TouchItem.bMoved = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ASevenStarsCharacter::EndTouch(const ETouchIndex::Type FingerIndex, const FVector Location)
|
||||||
|
{
|
||||||
|
if (TouchItem.bIsPressed == false)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
TouchItem.bIsPressed = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Commenting this section out to be consistent with FPS BP template.
|
||||||
|
//This allows the user to turn without using the right virtual joystick
|
||||||
|
|
||||||
|
//void ASevenStarsCharacter::TouchUpdate(const ETouchIndex::Type FingerIndex, const FVector Location)
|
||||||
|
//{
|
||||||
|
// if ((TouchItem.bIsPressed == true) && (TouchItem.FingerIndex == FingerIndex))
|
||||||
|
// {
|
||||||
|
// if (TouchItem.bIsPressed)
|
||||||
|
// {
|
||||||
|
// if (GetWorld() != nullptr)
|
||||||
|
// {
|
||||||
|
// UGameViewportClient* ViewportClient = GetWorld()->GetGameViewport();
|
||||||
|
// if (ViewportClient != nullptr)
|
||||||
|
// {
|
||||||
|
// FVector MoveDelta = Location - TouchItem.Location;
|
||||||
|
// FVector2D ScreenSize;
|
||||||
|
// ViewportClient->GetViewportSize(ScreenSize);
|
||||||
|
// FVector2D ScaledDelta = FVector2D(MoveDelta.X, MoveDelta.Y) / ScreenSize;
|
||||||
|
// if (FMath::Abs(ScaledDelta.X) >= 4.0 / ScreenSize.X)
|
||||||
|
// {
|
||||||
|
// TouchItem.bMoved = true;
|
||||||
|
// float Value = ScaledDelta.X * BaseTurnRate;
|
||||||
|
// AddControllerYawInput(Value);
|
||||||
|
// }
|
||||||
|
// if (FMath::Abs(ScaledDelta.Y) >= 4.0 / ScreenSize.Y)
|
||||||
|
// {
|
||||||
|
// TouchItem.bMoved = true;
|
||||||
|
// float Value = ScaledDelta.Y * BaseTurnRate;
|
||||||
|
// AddControllerPitchInput(Value);
|
||||||
|
// }
|
||||||
|
// TouchItem.Location = Location;
|
||||||
|
// }
|
||||||
|
// TouchItem.Location = Location;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
|
||||||
|
void ASevenStarsCharacter::MoveForward(float Value)
|
||||||
|
{
|
||||||
|
if (Value != 0.0f)
|
||||||
|
{
|
||||||
|
// add movement in that direction
|
||||||
|
AddMovementInput(GetActorForwardVector(), Value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ASevenStarsCharacter::MoveRight(float Value)
|
||||||
|
{
|
||||||
|
if (Value != 0.0f)
|
||||||
|
{
|
||||||
|
// add movement in that direction
|
||||||
|
AddMovementInput(GetActorRightVector(), Value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ASevenStarsCharacter::TurnAtRate(float Rate)
|
||||||
|
{
|
||||||
|
// calculate delta for this frame from the rate information
|
||||||
|
AddControllerYawInput(Rate * BaseTurnRate * GetWorld()->GetDeltaSeconds());
|
||||||
|
}
|
||||||
|
|
||||||
|
void ASevenStarsCharacter::LookUpAtRate(float Rate)
|
||||||
|
{
|
||||||
|
// calculate delta for this frame from the rate information
|
||||||
|
AddControllerPitchInput(Rate * BaseLookUpRate * GetWorld()->GetDeltaSeconds());
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ASevenStarsCharacter::EnableTouchscreenMovement(class UInputComponent* PlayerInputComponent)
|
||||||
|
{
|
||||||
|
if (FPlatformMisc::SupportsTouchInput() || GetDefault<UInputSettings>()->bUseMouseForTouch)
|
||||||
|
{
|
||||||
|
PlayerInputComponent->BindTouch(EInputEvent::IE_Pressed, this, &ASevenStarsCharacter::BeginTouch);
|
||||||
|
PlayerInputComponent->BindTouch(EInputEvent::IE_Released, this, &ASevenStarsCharacter::EndTouch);
|
||||||
|
|
||||||
|
//Commenting this out to be more consistent with FPS BP template.
|
||||||
|
//PlayerInputComponent->BindTouch(EInputEvent::IE_Repeat, this, &ASevenStarsCharacter::TouchUpdate);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
142
Source/SevenStars/SevenStarsCharacter.h
Normal file
142
Source/SevenStars/SevenStarsCharacter.h
Normal file
@ -0,0 +1,142 @@
|
|||||||
|
// Copyright 1998-2018 Epic Games, Inc. All Rights Reserved.
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "CoreMinimal.h"
|
||||||
|
#include "GameFramework/Character.h"
|
||||||
|
#include "SevenStarsCharacter.generated.h"
|
||||||
|
|
||||||
|
class UInputComponent;
|
||||||
|
|
||||||
|
UCLASS(config=Game)
|
||||||
|
class ASevenStarsCharacter : public ACharacter
|
||||||
|
{
|
||||||
|
GENERATED_BODY()
|
||||||
|
|
||||||
|
/** Pawn mesh: 1st person view (arms; seen only by self) */
|
||||||
|
UPROPERTY(VisibleDefaultsOnly, Category=Mesh)
|
||||||
|
class USkeletalMeshComponent* Mesh1P;
|
||||||
|
|
||||||
|
/** Gun mesh: 1st person view (seen only by self) */
|
||||||
|
UPROPERTY(VisibleDefaultsOnly, Category = Mesh)
|
||||||
|
class USkeletalMeshComponent* FP_Gun;
|
||||||
|
|
||||||
|
/** Location on gun mesh where projectiles should spawn. */
|
||||||
|
UPROPERTY(VisibleDefaultsOnly, Category = Mesh)
|
||||||
|
class USceneComponent* FP_MuzzleLocation;
|
||||||
|
|
||||||
|
/** Gun mesh: VR view (attached to the VR controller directly, no arm, just the actual gun) */
|
||||||
|
UPROPERTY(VisibleDefaultsOnly, Category = Mesh)
|
||||||
|
class USkeletalMeshComponent* VR_Gun;
|
||||||
|
|
||||||
|
/** Location on VR gun mesh where projectiles should spawn. */
|
||||||
|
UPROPERTY(VisibleDefaultsOnly, Category = Mesh)
|
||||||
|
class USceneComponent* VR_MuzzleLocation;
|
||||||
|
|
||||||
|
/** First person camera */
|
||||||
|
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Camera, meta = (AllowPrivateAccess = "true"))
|
||||||
|
class UCameraComponent* FirstPersonCameraComponent;
|
||||||
|
|
||||||
|
/** Motion controller (right hand) */
|
||||||
|
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, meta = (AllowPrivateAccess = "true"))
|
||||||
|
class UMotionControllerComponent* R_MotionController;
|
||||||
|
|
||||||
|
/** Motion controller (left hand) */
|
||||||
|
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, meta = (AllowPrivateAccess = "true"))
|
||||||
|
class UMotionControllerComponent* L_MotionController;
|
||||||
|
|
||||||
|
public:
|
||||||
|
ASevenStarsCharacter();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual void BeginPlay();
|
||||||
|
|
||||||
|
public:
|
||||||
|
/** Base turn rate, in deg/sec. Other scaling may affect final turn rate. */
|
||||||
|
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category=Camera)
|
||||||
|
float BaseTurnRate;
|
||||||
|
|
||||||
|
/** Base look up/down rate, in deg/sec. Other scaling may affect final rate. */
|
||||||
|
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category=Camera)
|
||||||
|
float BaseLookUpRate;
|
||||||
|
|
||||||
|
/** Gun muzzle's offset from the characters location */
|
||||||
|
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Gameplay)
|
||||||
|
FVector GunOffset;
|
||||||
|
|
||||||
|
/** Projectile class to spawn */
|
||||||
|
UPROPERTY(EditDefaultsOnly, Category=Projectile)
|
||||||
|
TSubclassOf<class ASevenStarsProjectile> ProjectileClass;
|
||||||
|
|
||||||
|
/** Sound to play each time we fire */
|
||||||
|
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Gameplay)
|
||||||
|
class USoundBase* FireSound;
|
||||||
|
|
||||||
|
/** AnimMontage to play each time we fire */
|
||||||
|
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Gameplay)
|
||||||
|
class UAnimMontage* FireAnimation;
|
||||||
|
|
||||||
|
/** Whether to use motion controller location for aiming. */
|
||||||
|
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Gameplay)
|
||||||
|
uint32 bUsingMotionControllers : 1;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
/** Fires a projectile. */
|
||||||
|
void OnFire();
|
||||||
|
|
||||||
|
/** Resets HMD orientation and position in VR. */
|
||||||
|
void OnResetVR();
|
||||||
|
|
||||||
|
/** Handles moving forward/backward */
|
||||||
|
void MoveForward(float Val);
|
||||||
|
|
||||||
|
/** Handles stafing movement, left and right */
|
||||||
|
void MoveRight(float Val);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called via input to turn at a given rate.
|
||||||
|
* @param Rate This is a normalized rate, i.e. 1.0 means 100% of desired turn rate
|
||||||
|
*/
|
||||||
|
void TurnAtRate(float Rate);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called via input to turn look up/down at a given rate.
|
||||||
|
* @param Rate This is a normalized rate, i.e. 1.0 means 100% of desired turn rate
|
||||||
|
*/
|
||||||
|
void LookUpAtRate(float Rate);
|
||||||
|
|
||||||
|
struct TouchData
|
||||||
|
{
|
||||||
|
TouchData() { bIsPressed = false;Location=FVector::ZeroVector;}
|
||||||
|
bool bIsPressed;
|
||||||
|
ETouchIndex::Type FingerIndex;
|
||||||
|
FVector Location;
|
||||||
|
bool bMoved;
|
||||||
|
};
|
||||||
|
void BeginTouch(const ETouchIndex::Type FingerIndex, const FVector Location);
|
||||||
|
void EndTouch(const ETouchIndex::Type FingerIndex, const FVector Location);
|
||||||
|
void TouchUpdate(const ETouchIndex::Type FingerIndex, const FVector Location);
|
||||||
|
TouchData TouchItem;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
// APawn interface
|
||||||
|
virtual void SetupPlayerInputComponent(UInputComponent* InputComponent) override;
|
||||||
|
// End of APawn interface
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Configures input for touchscreen devices if there is a valid touch interface for doing so
|
||||||
|
*
|
||||||
|
* @param InputComponent The input component pointer to bind controls to
|
||||||
|
* @returns true if touch controls were enabled.
|
||||||
|
*/
|
||||||
|
bool EnableTouchscreenMovement(UInputComponent* InputComponent);
|
||||||
|
|
||||||
|
public:
|
||||||
|
/** Returns Mesh1P subobject **/
|
||||||
|
FORCEINLINE class USkeletalMeshComponent* GetMesh1P() const { return Mesh1P; }
|
||||||
|
/** Returns FirstPersonCameraComponent subobject **/
|
||||||
|
FORCEINLINE class UCameraComponent* GetFirstPersonCameraComponent() const { return FirstPersonCameraComponent; }
|
||||||
|
|
||||||
|
};
|
||||||
|
|
17
Source/SevenStars/SevenStarsGameMode.cpp
Normal file
17
Source/SevenStars/SevenStarsGameMode.cpp
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
// Copyright 1998-2018 Epic Games, Inc. All Rights Reserved.
|
||||||
|
|
||||||
|
#include "SevenStarsGameMode.h"
|
||||||
|
#include "SevenStarsHUD.h"
|
||||||
|
#include "SevenStarsCharacter.h"
|
||||||
|
#include "UObject/ConstructorHelpers.h"
|
||||||
|
|
||||||
|
ASevenStarsGameMode::ASevenStarsGameMode()
|
||||||
|
: Super()
|
||||||
|
{
|
||||||
|
// set default pawn class to our Blueprinted character
|
||||||
|
static ConstructorHelpers::FClassFinder<APawn> PlayerPawnClassFinder(TEXT("/Game/FirstPersonCPP/Blueprints/FirstPersonCharacter"));
|
||||||
|
DefaultPawnClass = PlayerPawnClassFinder.Class;
|
||||||
|
|
||||||
|
// use our custom HUD class
|
||||||
|
HUDClass = ASevenStarsHUD::StaticClass();
|
||||||
|
}
|
19
Source/SevenStars/SevenStarsGameMode.h
Normal file
19
Source/SevenStars/SevenStarsGameMode.h
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
// Copyright 1998-2018 Epic Games, Inc. All Rights Reserved.
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "CoreMinimal.h"
|
||||||
|
#include "GameFramework/GameModeBase.h"
|
||||||
|
#include "SevenStarsGameMode.generated.h"
|
||||||
|
|
||||||
|
UCLASS(minimalapi)
|
||||||
|
class ASevenStarsGameMode : public AGameModeBase
|
||||||
|
{
|
||||||
|
GENERATED_BODY()
|
||||||
|
|
||||||
|
public:
|
||||||
|
ASevenStarsGameMode();
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
35
Source/SevenStars/SevenStarsHUD.cpp
Normal file
35
Source/SevenStars/SevenStarsHUD.cpp
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
// Copyright 1998-2018 Epic Games, Inc. All Rights Reserved.
|
||||||
|
|
||||||
|
#include "SevenStarsHUD.h"
|
||||||
|
#include "Engine/Canvas.h"
|
||||||
|
#include "Engine/Texture2D.h"
|
||||||
|
#include "TextureResource.h"
|
||||||
|
#include "CanvasItem.h"
|
||||||
|
#include "UObject/ConstructorHelpers.h"
|
||||||
|
|
||||||
|
ASevenStarsHUD::ASevenStarsHUD()
|
||||||
|
{
|
||||||
|
// Set the crosshair texture
|
||||||
|
static ConstructorHelpers::FObjectFinder<UTexture2D> CrosshairTexObj(TEXT("/Game/FirstPerson/Textures/FirstPersonCrosshair"));
|
||||||
|
CrosshairTex = CrosshairTexObj.Object;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void ASevenStarsHUD::DrawHUD()
|
||||||
|
{
|
||||||
|
Super::DrawHUD();
|
||||||
|
|
||||||
|
// Draw very simple crosshair
|
||||||
|
|
||||||
|
// find center of the Canvas
|
||||||
|
const FVector2D Center(Canvas->ClipX * 0.5f, Canvas->ClipY * 0.5f);
|
||||||
|
|
||||||
|
// offset by half the texture's dimensions so that the center of the texture aligns with the center of the Canvas
|
||||||
|
const FVector2D CrosshairDrawPosition( (Center.X),
|
||||||
|
(Center.Y + 20.0f));
|
||||||
|
|
||||||
|
// draw the crosshair
|
||||||
|
FCanvasTileItem TileItem( CrosshairDrawPosition, CrosshairTex->Resource, FLinearColor::White);
|
||||||
|
TileItem.BlendMode = SE_BLEND_Translucent;
|
||||||
|
Canvas->DrawItem( TileItem );
|
||||||
|
}
|
25
Source/SevenStars/SevenStarsHUD.h
Normal file
25
Source/SevenStars/SevenStarsHUD.h
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
// Copyright 1998-2018 Epic Games, Inc. All Rights Reserved.
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "CoreMinimal.h"
|
||||||
|
#include "GameFramework/HUD.h"
|
||||||
|
#include "SevenStarsHUD.generated.h"
|
||||||
|
|
||||||
|
UCLASS()
|
||||||
|
class ASevenStarsHUD : public AHUD
|
||||||
|
{
|
||||||
|
GENERATED_BODY()
|
||||||
|
|
||||||
|
public:
|
||||||
|
ASevenStarsHUD();
|
||||||
|
|
||||||
|
/** Primary draw call for the HUD */
|
||||||
|
virtual void DrawHUD() override;
|
||||||
|
|
||||||
|
private:
|
||||||
|
/** Crosshair asset pointer */
|
||||||
|
class UTexture2D* CrosshairTex;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
43
Source/SevenStars/SevenStarsProjectile.cpp
Normal file
43
Source/SevenStars/SevenStarsProjectile.cpp
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
// Copyright 1998-2018 Epic Games, Inc. All Rights Reserved.
|
||||||
|
|
||||||
|
#include "SevenStarsProjectile.h"
|
||||||
|
#include "GameFramework/ProjectileMovementComponent.h"
|
||||||
|
#include "Components/SphereComponent.h"
|
||||||
|
|
||||||
|
ASevenStarsProjectile::ASevenStarsProjectile()
|
||||||
|
{
|
||||||
|
// Use a sphere as a simple collision representation
|
||||||
|
CollisionComp = CreateDefaultSubobject<USphereComponent>(TEXT("SphereComp"));
|
||||||
|
CollisionComp->InitSphereRadius(5.0f);
|
||||||
|
CollisionComp->BodyInstance.SetCollisionProfileName("Projectile");
|
||||||
|
CollisionComp->OnComponentHit.AddDynamic(this, &ASevenStarsProjectile::OnHit); // set up a notification for when this component hits something blocking
|
||||||
|
|
||||||
|
// Players can't walk on it
|
||||||
|
CollisionComp->SetWalkableSlopeOverride(FWalkableSlopeOverride(WalkableSlope_Unwalkable, 0.f));
|
||||||
|
CollisionComp->CanCharacterStepUpOn = ECB_No;
|
||||||
|
|
||||||
|
// Set as root component
|
||||||
|
RootComponent = CollisionComp;
|
||||||
|
|
||||||
|
// Use a ProjectileMovementComponent to govern this projectile's movement
|
||||||
|
ProjectileMovement = CreateDefaultSubobject<UProjectileMovementComponent>(TEXT("ProjectileComp"));
|
||||||
|
ProjectileMovement->UpdatedComponent = CollisionComp;
|
||||||
|
ProjectileMovement->InitialSpeed = 3000.f;
|
||||||
|
ProjectileMovement->MaxSpeed = 3000.f;
|
||||||
|
ProjectileMovement->bRotationFollowsVelocity = true;
|
||||||
|
ProjectileMovement->bShouldBounce = true;
|
||||||
|
|
||||||
|
// Die after 3 seconds by default
|
||||||
|
InitialLifeSpan = 3.0f;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ASevenStarsProjectile::OnHit(UPrimitiveComponent* HitComp, AActor* OtherActor, UPrimitiveComponent* OtherComp, FVector NormalImpulse, const FHitResult& Hit)
|
||||||
|
{
|
||||||
|
// Only add impulse and destroy projectile if we hit a physics
|
||||||
|
if ((OtherActor != NULL) && (OtherActor != this) && (OtherComp != NULL) && OtherComp->IsSimulatingPhysics())
|
||||||
|
{
|
||||||
|
OtherComp->AddImpulseAtLocation(GetVelocity() * 100.0f, GetActorLocation());
|
||||||
|
|
||||||
|
Destroy();
|
||||||
|
}
|
||||||
|
}
|
34
Source/SevenStars/SevenStarsProjectile.h
Normal file
34
Source/SevenStars/SevenStarsProjectile.h
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
// Copyright 1998-2018 Epic Games, Inc. All Rights Reserved.
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "CoreMinimal.h"
|
||||||
|
#include "GameFramework/Actor.h"
|
||||||
|
#include "SevenStarsProjectile.generated.h"
|
||||||
|
|
||||||
|
UCLASS(config=Game)
|
||||||
|
class ASevenStarsProjectile : public AActor
|
||||||
|
{
|
||||||
|
GENERATED_BODY()
|
||||||
|
|
||||||
|
/** Sphere collision component */
|
||||||
|
UPROPERTY(VisibleDefaultsOnly, Category=Projectile)
|
||||||
|
class USphereComponent* CollisionComp;
|
||||||
|
|
||||||
|
/** Projectile movement component */
|
||||||
|
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Movement, meta = (AllowPrivateAccess = "true"))
|
||||||
|
class UProjectileMovementComponent* ProjectileMovement;
|
||||||
|
|
||||||
|
public:
|
||||||
|
ASevenStarsProjectile();
|
||||||
|
|
||||||
|
/** called when projectile hits something */
|
||||||
|
UFUNCTION()
|
||||||
|
void OnHit(UPrimitiveComponent* HitComp, AActor* OtherActor, UPrimitiveComponent* OtherComp, FVector NormalImpulse, const FHitResult& Hit);
|
||||||
|
|
||||||
|
/** Returns CollisionComp subobject **/
|
||||||
|
FORCEINLINE class USphereComponent* GetCollisionComp() const { return CollisionComp; }
|
||||||
|
/** Returns ProjectileMovement subobject **/
|
||||||
|
FORCEINLINE class UProjectileMovementComponent* GetProjectileMovement() const { return ProjectileMovement; }
|
||||||
|
};
|
||||||
|
|
13
Source/SevenStarsEditor.Target.cs
Normal file
13
Source/SevenStarsEditor.Target.cs
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
// Copyright 1998-2018 Epic Games, Inc. All Rights Reserved.
|
||||||
|
|
||||||
|
using UnrealBuildTool;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
public class SevenStarsEditorTarget : TargetRules
|
||||||
|
{
|
||||||
|
public SevenStarsEditorTarget(TargetInfo Target) : base(Target)
|
||||||
|
{
|
||||||
|
Type = TargetType.Editor;
|
||||||
|
ExtraModuleNames.Add("SevenStars");
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user