Compare commits

...
Author SHA1 Message Date
Gregory Campbell e6db8a979c Cleaned up the expanded area and gave all obstacles more space between each other as well as fine tuning and fixing all noticeable issuses with all crouch based movements 2020-01-05 12:56:23 -05:00
Gregory Campbell d4fafd63d3 Implemented a long jump, a dive, the ability to bunny hop and a somewhat messy fix to the straight down drop issue from the implemented gravity as well as expanding the test area to more easily test quick movements 2020-01-05 01:45:45 -05:00
Gregory CampbellandGitHub 081d93f2c2 Merge pull request #18 from gjcampbell777/acceleration_rework
Acceleration rework
2020-01-04 16:15:56 -05:00
Gregory Campbell 996e1e3b20 Fully functional and satisfactory acc/decc in movement (although a little slippery, might require more tweakign later on) 2020-01-04 16:15:15 -05:00
Gregory Campbell 386b51589e Got a fully functional implementation of acceleration/decceleration that meshes well across all inputs. Will do further testing/tinkering before merging 2020-01-04 15:52:45 -05:00
Gregory Campbell 573b4815ea Havent made any real progress, stopping and saving this now to work on other things 2020-01-04 15:02:05 -05:00
Gregory CampbellandGitHub db8ae256a8 Merge pull request #17 from gjcampbell777/wall_running
Wall running
2019-12-31 18:18:34 -05:00
Gregory Campbell 9818b32bdc Got a functional implementation of wall running that I am satisfied with 2019-12-31 18:17:35 -05:00
Gregory Campbell f1db804155 Implemented basic wallrunning 2019-12-21 23:17:24 -05:00
Gregory CampbellandGitHub a31a335424 Merge pull request #16 from gjcampbell777/add_momentum_to_movement
Add momentum to movement
2019-12-21 21:03:56 -05:00
Gregory Campbell e638892592 Got momentum based movement fully functional while fixing a few player controller bugs and preferential tweaks 2019-12-21 21:00:36 -05:00
Gregory Campbell 3afdbc4ff0 Fixed issue causing no increased or decreased mmovement based on changing moveset 2019-12-14 23:49:23 -05:00
Gregory Campbell a292dd8b9a Added momentum to player movement and made adjustments to public player variables 2019-12-14 23:40:14 -05:00
Gregory Campbell 31fc08bd5b Slight tweak to improve upon the last merge 2019-12-11 21:33:57 -05:00
Gregory CampbellandGitHub b83c37531a Merge pull request #15 from gjcampbell777/fix_delayed_standing_slide_bug
Fixed delayed standing slide and made standard horz/vert axis movemen…
2019-12-11 21:14:01 -05:00
Gregory Campbell de4da48e05 Fixed delayed standing slide and made standard horz/vert axis movement uniform across keyboard and joystick 2019-12-11 21:12:47 -05:00
Gregory Campbell e616fa50b2 Better Builds implementation for .gitignore 2019-12-07 16:10:09 -05:00
Gregory Campbell 67601fdc7d Updated gitignore to ignore Mac Builds 2019-12-07 16:07:19 -05:00
Gregory Campbell fb0b50645b Changes for deploying builds 2019-12-07 16:05:46 -05:00
Gregory Campbell 9c74c88b46 Merging all expand_test_area changes through master since trying to merge that branch while removing what is out of date is too much of a pain to deal with 2019-12-07 15:47:13 -05:00
Gregory CampbellandGitHub a102dea709 Merge pull request #14 from gjcampbell777/revert-13-expand_test_area
Revert "Expand test area"
2019-12-07 15:33:24 -05:00
Gregory CampbellandGitHub d84d484f8f Revert "Expand test area" 2019-12-07 15:33:13 -05:00
Gregory CampbellandGitHub 7dfaa0e4df Merge pull request #13 from gjcampbell777/expand_test_area
Expand test area
2019-12-07 15:25:00 -05:00
14 changed files with 1604 additions and 3621 deletions
+2 -2
View File
@@ -5,8 +5,8 @@
/[Ll]ibrary/
/[Tt]emp/
/[Oo]bj/
/[Bb]uild/
/[Bb]uilds/
/[Bb]uild*/
/[Bb]uilds*/
/[Ll]ogs/
/[Mm]emoryCaptures/
@@ -7,7 +7,7 @@ Material:
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Test Checker
m_Name: Prototype checker
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
m_ShaderKeywords:
m_LightmapFlags: 4
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 022ba1843dfdcfe4a832a7fcfd80c6fa
guid: 4995e529222357e47a1b77d2e400ff1d
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 0
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 2bd92030de793ce408d33ee279c593fc
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+179 -25
View File
@@ -12,21 +12,38 @@ public class PlayerController : MonoBehaviour
CharacterController characterController;
CapsuleCollider capsule;
public float speed;
public float maxSpeed;
public float acceleration;
public float friction;
public float jumpHeight;
public float gravity;
public float rotationSpeed;
public Transform pivot;
public GameObject playerModel;
private bool wallRunning = false;
private bool diving = false;
private bool sliding = false;
private int jump = 0;
private int wall = 0;
private int dive = 0;
private float maxSpeedStore;
private float maxSpeedCap = 100;
private float accelerationStore;
private float capsuleHeight;
private float controllerHeight;
private float transformHeight;
private float xVelocity = 0.0f;
private float zVelocity = 0.0f;
private Vector3 moveDirection;
private Vector3 velocity;
private Vector3 gravityVelocity;
float startTime = 0.0f;
float slideTime = 0.0f;
float wallRunTime = 0.0f;
float oneSec = 1.0f;
float halfSec = 0.5f;
float quarterSec = 0.25f;
void Start()
{
@@ -35,34 +52,61 @@ public class PlayerController : MonoBehaviour
transformHeight = transform.localScale.y;
controllerHeight = characterController.height;
capsuleHeight = capsule.height;
maxSpeedStore = maxSpeed;
accelerationStore = acceleration;
}
void OnControllerColliderHit(ControllerColliderHit hit)
{
if(hit.gameObject.tag == "Wall")
{
wallRunning = true;
wall++;
}
}
void Update()
{
float yStore = moveDirection.y;
//Need to switch to 'raw' when using keyboard
moveDirection = (transform.forward * Input.GetAxis("Vertical")) + (transform.right * Input.GetAxis("Horizontal"));
if (jump <= 1)
{
moveDirection = moveDirection.normalized * speed; //Remove this line to make running diagonal the fastest standard run
} else {
moveDirection = (moveDirection.normalized * speed)/4; //Remove this line to make running diagonal the fastest standard run
}
moveDirection = new Vector3(Input.GetAxis("Horizontal"), moveDirection.y, Input.GetAxis("Vertical"));
moveDirection = transform.TransformDirection(moveDirection);
moveDirection = Vector3.ClampMagnitude(moveDirection, 1.0f);
moveDirection.y = yStore;
if (jump >= 2)
{
if(maxSpeed > maxSpeedStore/1.5f)
{
maxSpeed -= acceleration;
}
}
if (characterController.isGrounded)
{
diving = false;
dive = 0;
jump = 0;
moveDirection.y = 0.0f;
if(maxSpeed > maxSpeedStore)
{
maxSpeed -= acceleration/10;
}
if(maxSpeed < maxSpeedStore && !Input.GetKey(KeyCode.LeftShift) && !Input.GetKey(KeyCode.LeftControl))
{
maxSpeed += acceleration;
}
if(Input.GetKey(KeyCode.LeftShift))
{
moveDirection = (moveDirection.normalized * speed/2);
} else {
moveDirection = moveDirection.normalized * speed;
if(maxSpeed > maxSpeedStore/2)
{
maxSpeed -= acceleration;
}
}
if(Input.GetKey(KeyCode.LeftControl))
@@ -74,28 +118,75 @@ public class PlayerController : MonoBehaviour
if(Input.GetKeyDown(KeyCode.LeftControl))
{
startTime = Time.time;
}
if((Input.GetAxis("Horizontal") == 0 && Input.GetAxis("Vertical") == 0))
{
sliding = false;
} else {
sliding = true;
slideTime = Time.time;
}
}
if(characterController.velocity != new Vector3(0, 0, 0) && startTime + oneSec >= Time.time)
if(slideTime + halfSec >= Time.time && sliding == true)
{
moveDirection = (moveDirection.normalized * speed * 2);
if(maxSpeed < maxSpeedStore*2)
{
maxSpeed += acceleration*2;
}
if(Input.GetButton("Jump") && slideTime + quarterSec >= Time.time)
{
maxSpeed += 5;
}
} else {
moveDirection = (moveDirection.normalized * speed/4);
if(maxSpeed > maxSpeedStore/4)
{
maxSpeed -= acceleration;
}
}
} else {
moveDirection = moveDirection.normalized * speed;
characterController.height = controllerHeight;
capsule.height = capsuleHeight;
transform.localScale = new Vector3(transform.localScale.x, transformHeight, transform.localScale.z);
}
}
} else {
slideTime = Time.time;
if(Input.GetKey(KeyCode.LeftControl))
{
characterController.height /= 2;
capsule.height /= 2;
transform.localScale = new Vector3(transform.localScale.x, transformHeight/2, transform.localScale.z);
diving = true;
} else {
characterController.height = controllerHeight;
capsule.height = capsuleHeight;
transform.localScale = new Vector3(transform.localScale.x, transformHeight, transform.localScale.z);
}
//Might want to change move direction value to make triggering this speed up effect easier/harder
if(diving && moveDirection.y > 0.75 && Input.GetKeyDown(KeyCode.LeftControl))
{
dive++;
if(dive == 1){
maxSpeed += 10;
}
}
}
if (Input.GetButtonDown("Jump") && jump <= 1)
{
@@ -103,13 +194,76 @@ public class PlayerController : MonoBehaviour
jump++;
}
if (characterController.collisionFlags == CollisionFlags.None)
{
wallRunning = false;
wall = 0;
}
moveDirection.y += Physics.gravity.y * gravity * Time.deltaTime;
if (wallRunning)
{
if(maxSpeed < maxSpeedStore*1.5f)
{
maxSpeed += acceleration;
}
jump = 0;
if(wall == 1)
{
wallRunTime = Time.time;
}
if(wallRunTime + oneSec < Time.time)
{
moveDirection.y += Physics.gravity.y * (gravity/8) * Time.deltaTime;
} else {
moveDirection.y = 0.0f;
}
}
velocity.x += moveDirection.x;
velocity.z += moveDirection.z;
if(Input.GetAxis("Horizontal") == 0 && Input.GetAxis("Vertical") == 0){
//Remove or "lower" friction to add an 'ice' effect
velocity.x = Mathf.SmoothDamp(velocity.x, 0.0f, ref xVelocity, friction);
velocity.z = Mathf.SmoothDamp(velocity.z, 0.0f, ref zVelocity, friction);
}
if(maxSpeed > maxSpeedCap)
{
maxSpeed = maxSpeedCap;
}
if(characterController.velocity == new Vector3(0, 0, 0))
{
maxSpeed = maxSpeedStore;
}
velocity = Vector3.ClampMagnitude(velocity, maxSpeed);
velocity.y = moveDirection.y;
Debug.Log(moveDirection.y+"\n");
if(moveDirection.y <= -5 && Mathf.Abs(velocity.x) <= 1.5f && Mathf.Abs(velocity.z) <= 1.5f)
{
velocity.x = velocity.x * Mathf.Abs(moveDirection.y);
velocity.z = velocity.z * Mathf.Abs(moveDirection.y);
}
// Move the controller
characterController.Move(moveDirection * Time.deltaTime);
characterController.Move(velocity * Time.deltaTime);
//Move the player in different directions based on camera look direction
//Need to switch to 'raw' when using keyboard
if(Input.GetAxis("Horizontal") != 0 || Input.GetAxis("Vertical") != 0)
{
transform.rotation = Quaternion.Euler(0f, pivot.rotation.eulerAngles.y, 0f);
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

+91
View File
@@ -0,0 +1,91 @@
fileFormatVersion: 2
guid: 02594762d533dff4688ad6df3869341a
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 10
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1
nPOTScale: 1
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
singleChannelComponent: 0
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:
+4 -1
View File
@@ -4,5 +4,8 @@
EditorBuildSettings:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Scenes: []
m_Scenes:
- enabled: 1
path: Assets/Scenes/Test Scene.unity
guid: 9fc0d4010bbf28b4594072e72b8655ab
m_configObjects: {}
+4
View File
@@ -35,6 +35,10 @@ GraphicsSettings:
- {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0}
- {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0}
- {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0}
- {fileID: 16000, guid: 0000000000000000f000000000000000, type: 0}
- {fileID: 16001, guid: 0000000000000000f000000000000000, type: 0}
- {fileID: 17000, guid: 0000000000000000f000000000000000, type: 0}
- {fileID: 16002, guid: 0000000000000000f000000000000000, type: 0}
m_PreloadedShaders: []
m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000,
type: 0}
+6 -6
View File
@@ -13,10 +13,10 @@ InputManager:
positiveButton: right
altNegativeButton: a
altPositiveButton: d
gravity: 3
gravity: 1000
dead: 0.001
sensitivity: 3
snap: 1
snap: 0
invert: 0
type: 0
axis: 0
@@ -29,10 +29,10 @@ InputManager:
positiveButton: up
altNegativeButton: s
altPositiveButton: w
gravity: 3
gravity: 1000
dead: 0.001
sensitivity: 3
snap: 1
snap: 0
invert: 0
type: 0
axis: 0
@@ -157,7 +157,7 @@ InputManager:
positiveButton:
altNegativeButton:
altPositiveButton:
gravity: 0
gravity: 1000
dead: 0.19
sensitivity: 1
snap: 0
@@ -173,7 +173,7 @@ InputManager:
positiveButton:
altNegativeButton:
altPositiveButton:
gravity: 0
gravity: 1000
dead: 0.19
sensitivity: 1
snap: 0
+49 -20
View File
@@ -3,7 +3,7 @@
--- !u!129 &1
PlayerSettings:
m_ObjectHideFlags: 0
serializedVersion: 18
serializedVersion: 20
productGUID: 2fb2c0092f93c6c4b83dffcbfbd4e6a3
AndroidProfiler: 0
AndroidFilterTouchesWhenObscured: 0
@@ -12,7 +12,7 @@ PlayerSettings:
targetDevice: 2
useOnDemandResources: 0
accelerometerFrequency: 60
companyName: DefaultCompany
companyName: GCProductions
productName: Speed Platformer Prototype
defaultCursor: {fileID: 0}
cursorHotspot: {x: 0, y: 0}
@@ -52,7 +52,6 @@ PlayerSettings:
m_StackTraceTypes: 010000000100000001000000010000000100000001000000
iosShowActivityIndicatorOnLoading: -1
androidShowActivityIndicatorOnLoading: -1
displayResolutionDialog: 0
iosUseCustomAppBackgroundBehavior: 0
iosAllowHTTPDownload: 1
allowedAutorotateToPortrait: 1
@@ -85,7 +84,6 @@ PlayerSettings:
useMacAppStoreValidation: 0
macAppStoreCategory: public.app-category.games
gpuSkinning: 1
graphicsJobs: 0
xboxPIXTextureCapture: 0
xboxEnableAvatar: 0
xboxEnableKinect: 0
@@ -93,7 +91,6 @@ PlayerSettings:
xboxEnableFitness: 0
visibleInBackground: 1
allowFullscreenSwitch: 1
graphicsJobMode: 0
fullscreenMode: 1
xboxSpeechDB: 0
xboxEnableHeadOrientation: 0
@@ -113,6 +110,7 @@ PlayerSettings:
switchNVNShaderPoolsGranularity: 33554432
switchNVNDefaultPoolsGranularity: 16777216
switchNVNOtherPoolsGranularity: 16777216
vulkanNumSwapchainBuffers: 3
vulkanEnableSetSRGBWrite: 0
m_SupportedAspectRatios:
4:3: 1
@@ -155,9 +153,9 @@ PlayerSettings:
v2Signing: 0
enable360StereoCapture: 0
isWsaHolographicRemotingEnabled: 0
protectGraphicsMemory: 0
enableFrameTimingStats: 0
useHDRDisplay: 0
D3DHDRBitDepth: 0
m_ColorGamuts: 00000000
targetPixelDensity: 30
resolutionScalingMode: 0
@@ -166,7 +164,7 @@ PlayerSettings:
applicationIdentifier: {}
buildNumber: {}
AndroidBundleVersionCode: 1
AndroidMinSdkVersion: 16
AndroidMinSdkVersion: 19
AndroidTargetSdkVersion: 0
AndroidPreferredInstallLocation: 1
aotOptions:
@@ -181,10 +179,10 @@ PlayerSettings:
StripUnusedMeshComponents: 1
VertexChannelCompressionMask: 4054
iPhoneSdkVersion: 988
iOSTargetOSVersionString: 9.0
iOSTargetOSVersionString: 10.0
tvOSSdkVersion: 0
tvOSRequireExtendedGameController: 0
tvOSTargetOSVersionString: 9.0
tvOSTargetOSVersionString: 10.0
uIPrerenderedIcon: 0
uIRequiresPersistentWiFi: 0
uIRequiresFullScreen: 1
@@ -274,8 +272,14 @@ PlayerSettings:
androidGamepadSupportLevel: 0
AndroidValidateAppBundleSize: 1
AndroidAppBundleSizeToValidate: 150
resolutionDialogBanner: {fileID: 0}
m_BuildTargetIcons: []
m_BuildTargetIcons:
- m_BuildTarget:
m_Icons:
- serializedVersion: 2
m_Icon: {fileID: 2800000, guid: 02594762d533dff4688ad6df3869341a, type: 3}
m_Width: 128
m_Height: 128
m_Kind: 0
m_BuildTargetPlatformIcons: []
m_BuildTargetBatching:
- m_BuildTarget: Standalone
@@ -293,6 +297,38 @@ PlayerSettings:
- m_BuildTarget: WebGL
m_StaticBatching: 0
m_DynamicBatching: 0
m_BuildTargetGraphicsJobs:
- m_BuildTarget: MacStandaloneSupport
m_GraphicsJobs: 0
- m_BuildTarget: Switch
m_GraphicsJobs: 0
- m_BuildTarget: MetroSupport
m_GraphicsJobs: 0
- m_BuildTarget: AppleTVSupport
m_GraphicsJobs: 0
- m_BuildTarget: BJMSupport
m_GraphicsJobs: 0
- m_BuildTarget: LinuxStandaloneSupport
m_GraphicsJobs: 0
- m_BuildTarget: PS4Player
m_GraphicsJobs: 0
- m_BuildTarget: iOSSupport
m_GraphicsJobs: 0
- m_BuildTarget: WindowsStandaloneSupport
m_GraphicsJobs: 0
- m_BuildTarget: XboxOnePlayer
m_GraphicsJobs: 0
- m_BuildTarget: LuminSupport
m_GraphicsJobs: 0
- m_BuildTarget: AndroidPlayer
m_GraphicsJobs: 0
- m_BuildTarget: WebGLSupport
m_GraphicsJobs: 0
m_BuildTargetGraphicsJobMode:
- m_BuildTarget: PS4Player
m_GraphicsJobMode: 0
- m_BuildTarget: XboxOnePlayer
m_GraphicsJobMode: 0
m_BuildTargetGraphicsAPIs:
- m_BuildTarget: AndroidPlayer
m_APIs: 150000000b000000
@@ -315,7 +351,6 @@ PlayerSettings:
openGLRequireES31: 0
openGLRequireES31AEP: 0
openGLRequireES32: 0
vuforiaEnabled: 0
m_TemplateCustomTags: {}
mobileMTRendering:
Android: 1
@@ -431,6 +466,7 @@ PlayerSettings:
switchRatingsInt_9: 0
switchRatingsInt_10: 0
switchRatingsInt_11: 0
switchRatingsInt_12: 0
switchLocalCommunicationIds_0:
switchLocalCommunicationIds_1:
switchLocalCommunicationIds_2:
@@ -530,6 +566,7 @@ PlayerSettings:
ps4contentSearchFeaturesUsed: 0
ps4attribEyeToEyeDistanceSettingVR: 0
ps4IncludedModules: []
ps4attribVROutputEnabled: 0
monoEnv:
splashScreenBackgroundSourceLandscape: {fileID: 0}
splashScreenBackgroundSourcePortrait: {fileID: 0}
@@ -614,7 +651,6 @@ PlayerSettings:
XboxOneAllowedProductIds: []
XboxOnePersistentLocalStorageSize: 0
XboxOneXTitleMemory: 8
xboxOneScriptCompiler: 1
XboxOneOverrideIdentityName:
vrEditorSettings:
daydream:
@@ -633,13 +669,6 @@ PlayerSettings:
luminVersion:
m_VersionCode: 1
m_VersionName:
facebookSdkVersion: 7.9.4
facebookAppId:
facebookCookies: 1
facebookLogging: 1
facebookStatus: 1
facebookXfbml: 0
facebookFrictionlessRequests: 1
apiCompatibilityLevel: 6
cloudProjectId:
framebufferDepthMemorylessMode: 0
+1
View File
@@ -5,6 +5,7 @@ TagManager:
serializedVersion: 2
tags:
- Environment
- Wall
layers:
- Default
- TransparentFX