Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
Suck It
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
2
Issues
2
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
GameDevWeek
W
Wintersemester 2018-2019
Unity
Suck It
Commits
c45115d7
Commit
c45115d7
authored
Mar 29, 2019
by
Unknown
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Doppel Jump sollte mit Air charges funktionieren
parent
62e2b8e7
Changes
9
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
665 additions
and
70 deletions
+665
-70
Assets/_Game/Data/Player Data/Movement Data/Movement States.asset
...Game/Data/Player Data/Movement Data/Movement States.asset
+9
-9
Assets/_Game/Data/Player Data/PlayerState.asset
Assets/_Game/Data/Player Data/PlayerState.asset
+10
-9
Assets/_Game/Scenes/MainLevelPlayerTest.unity
Assets/_Game/Scenes/MainLevelPlayerTest.unity
+505
-18
Assets/_Game/Scripts/Player/InputController.cs
Assets/_Game/Scripts/Player/InputController.cs
+3
-3
Assets/_Game/Scripts/Player/MovementController.cs
Assets/_Game/Scripts/Player/MovementController.cs
+49
-30
Assets/_Game/Scripts/Player/PlayerAnimation.cs
Assets/_Game/Scripts/Player/PlayerAnimation.cs
+75
-0
Assets/_Game/Scripts/Player/PlayerAnimation.cs.meta
Assets/_Game/Scripts/Player/PlayerAnimation.cs.meta
+11
-0
Assets/_Game/Scripts/Player/PlayerInteract.cs
Assets/_Game/Scripts/Player/PlayerInteract.cs
+1
-1
Assets/_Game/Scripts/Scriptable Object/ElementGameEventListener.cs
...ame/Scripts/Scriptable Object/ElementGameEventListener.cs
+2
-0
No files found.
Assets/_Game/Data/Player Data/Movement Data/Movement States.asset
View file @
c45115d7
...
...
@@ -13,7 +13,7 @@ MonoBehaviour:
m_Name
:
Movement States
m_EditorClassIdentifier
:
Assembly-CSharp:_Game.Scripts.Scriptable_Object:MovementStates
airMoveState
:
jumpForce
:
5
jumpForce
:
10
smoothing
:
0.03
airControl
:
1
canSwim
:
1
...
...
@@ -49,11 +49,11 @@ MonoBehaviour:
mass
:
1
gravity
:
3
defaultMoveState
:
jumpForce
:
0
smoothing
:
0
airControl
:
0
canSwim
:
0
moveSpeed
:
0
maxJumpCount
:
0
mass
:
0
gravity
:
0
jumpForce
:
1
0
smoothing
:
0
.03
airControl
:
1
canSwim
:
1
moveSpeed
:
2
0
maxJumpCount
:
1
mass
:
1
gravity
:
1
Assets/_Game/Data/Player Data/PlayerState.asset
View file @
c45115d7
...
...
@@ -12,14 +12,15 @@ MonoBehaviour:
m_Script
:
{
fileID
:
11500000
,
guid
:
353b156b7c59b1c45a8767d7500b31fb
,
type
:
3
}
m_Name
:
PlayerState
m_EditorClassIdentifier
:
currentInfusedElement
:
2
currentInfusedElement
:
0
currentMoveState
:
jumpForce
:
0
smoothing
:
0
airControl
:
0
moveSpeed
:
0
maxJumpCount
:
0
mass
:
0
gravity
:
0
jumpForce
:
10
smoothing
:
0.03
airControl
:
1
canSwim
:
1
moveSpeed
:
30
maxJumpCount
:
5
mass
:
0.1
gravity
:
0.5
movementStates
:
{
fileID
:
11400000
,
guid
:
c757aad6925b37a46b916f609fa9012b
,
type
:
2
}
charges
:
4
charges
:
0
Assets/_Game/Scenes/MainLevelPlayerTest.unity
View file @
c45115d7
This diff is collapsed.
Click to expand it.
Assets/_Game/Scripts/Player/InputController.cs
View file @
c45115d7
...
...
@@ -5,11 +5,11 @@ using UnityEngine;
[
RequireComponent
(
typeof
(
MovementController
))]
public
class
InputController
:
MonoBehaviour
{
private
MovementController
m_Controller
;
private
MovementController
m_Controller
;
private
float
m_XAxis
,
m_YAxis
;
private
bool
m_Jump
=
false
;
void
Start
()
{
void
Start
()
{
//Sucht nach MovementController auf dem selben Gameobject
m_Controller
=
GetComponent
<
MovementController
>();
}
...
...
@@ -24,4 +24,4 @@ public class InputController : MonoBehaviour {
//Ruft Move Methode im MovementController auf dient der Bewegung des Charakters
m_Controller
.
Move
(
new
Vector2
(
m_XAxis
,
m_YAxis
),
m_Jump
);
}
}
\ No newline at end of file
}
Assets/_Game/Scripts/Player/MovementController.cs
View file @
c45115d7
...
...
@@ -17,8 +17,9 @@ public class MovementController : MonoBehaviour
[
SerializeField
]
private
bool
m_AirControl
=
false
;
// Whether or not a player can steer while jumping;
[
SerializeField
]
private
bool
m_CanSwim
=
true
;
[
Header
(
"Ground Check Control"
)]
[
SerializeField
]
private
LayerMask
m_WhatIsGround
;
// A mask determining what is ground to the character
[
Header
(
"Ground Check Control"
)]
[
SerializeField
]
private
LayerMask
m_WhatIsGround
;
// A mask determining what is ground to the character
[
SerializeField
]
private
Transform
m_GroundCheck
;
// A position marking where to check if the player is grounded.
[
SerializeField
]
private
float
m_GroundCheckDistance
=
1.5f
;
[
SerializeField
]
private
float
m_GroundedRadius
=
.
2f
;
...
...
@@ -47,19 +48,6 @@ public class MovementController : MonoBehaviour
public
UnityEvent
OnSwimEvent
;
public
UnityEvent
OnJumpEvent
;
public
void
SetMovementParameters
(
MovementState
state
)
{
m_JumpForce
=
state
.
jumpForce
;
m_MovementSmoothing
=
state
.
smoothing
;
m_AirControl
=
state
.
airControl
;
m_CanSwim
=
state
.
canSwim
;
m_Speed
=
state
.
moveSpeed
;
m_MaxJumpCount
=
state
.
maxJumpCount
;
m_Rigidbody2D
.
mass
=
state
.
mass
;
m_Rigidbody2D
.
gravityScale
=
state
.
gravity
;
}
private
void
Awake
()
{
m_Rigidbody2D
=
GetComponent
<
Rigidbody2D
>();
...
...
@@ -96,7 +84,15 @@ public class MovementController : MonoBehaviour
if
(
m_RaycastHits2D
[
i
].
transform
.
gameObject
==
gameObject
)
continue
;
m_Grounded
=
true
;
m_TempJumpCount
=
m_MaxJumpCount
;
if
(
r_State
.
GetCurrentElement
()
!=
InfusedElement
.
Air
)
{
m_TempJumpCount
=
m_MaxJumpCount
;
}
else
{
m_TempJumpCount
=
r_State
.
GetCharges
();
}
m_CurrentGroundNormal
=
m_RaycastHits2D
[
i
].
normal
;
if
(!
wasGrounded
)
{
...
...
@@ -106,11 +102,9 @@ public class MovementController : MonoBehaviour
}
public
void
Move
(
Vector2
move
,
bool
jump
)
{
Debug
.
Log
(
"grounded: "
+
m_Grounded
+
" aircontrol: "
+
m_AirControl
);
Debug
.
Log
(
"Temp Jump: "
+
m_TempJumpCount
+
" Air charges: "
+
r_State
.
GetCharges
());
//only control the player if grounded or airControl is turned on
if
(
m_Grounded
||
(
m_AirControl
&&
(
m_Airborn
&&
!
m_Grounded
))
||
(
m_Swimming
&&
m_CanSwim
))
{
...
...
@@ -138,12 +132,18 @@ public class MovementController : MonoBehaviour
// If the player should jump...
if
(
jump
)
{
if
(((
m_Grounded
)
||
(
m_TempJumpCount
>
1
)
||
(
m_Swimming
&&
m_CanSwim
))
&&
!
m_Jumped
)
if
(
m_Grounded
||
(
m_Swimming
&&
m_CanSwim
)
&&
!
m_Jumped
)
{
m_Grounded
=
false
;
m_Rigidbody2D
.
velocity
=
Vector2
.
up
*
m_JumpForce
;
OnJumpEvent
.
Invoke
();
StartCoroutine
(
Wait
(
m_SecondsWaitToJump
));
}
else
if
((
m_TempJumpCount
>
0
)
&&
!
m_Jumped
)
{
// Add a vertical force to the player.
m_Grounded
=
false
;
m_TempJumpCount
--;
//m_Rigidbody2D.AddForce (new Vector2 (0f, m_JumpForce)
);
if
(
r_State
.
GetCurrentElement
()
==
InfusedElement
.
Air
)
r_State
.
ChangeCharges
(-
1
);
m_Rigidbody2D
.
velocity
=
Vector2
.
up
*
m_JumpForce
;
OnJumpEvent
.
Invoke
();
StartCoroutine
(
Wait
(
m_SecondsWaitToJump
));
...
...
@@ -154,10 +154,23 @@ public class MovementController : MonoBehaviour
{
m_Rigidbody2D
.
velocity
+=
Vector2
.
up
*
Physics2D
.
gravity
.
y
*
(
m_fallMultiplier
-
1
)
*
Time
.
deltaTime
;
}
//else if (m_Rigidbody2D.velocity.y > 0 && !Input.GetButton("Jump"))
//{
// m_Rigidbody2D.velocity += Vector2.up * Physics2D.gravity.y * (m_lowJumpMultiplier - 1) * Time.deltaTime;
//}
else
if
(
m_Rigidbody2D
.
velocity
.
y
>
0
&&
!
Input
.
GetButton
(
"Jump"
))
{
m_Rigidbody2D
.
velocity
+=
Vector2
.
up
*
Physics2D
.
gravity
.
y
*
(
m_lowJumpMultiplier
-
1
)
*
Time
.
deltaTime
;
}
}
public
void
UpdateMovementParameters
()
{
MovementState
state
=
r_State
.
GetCurrentMovementState
();
m_JumpForce
=
state
.
jumpForce
;
m_MovementSmoothing
=
state
.
smoothing
;
m_AirControl
=
state
.
airControl
;
m_CanSwim
=
state
.
canSwim
;
m_Speed
=
state
.
moveSpeed
;
m_MaxJumpCount
=
state
.
maxJumpCount
;
m_Rigidbody2D
.
mass
=
state
.
mass
;
m_Rigidbody2D
.
gravityScale
=
state
.
gravity
;
}
public
void
SetSwimming
(
bool
value
)
...
...
@@ -180,6 +193,12 @@ public class MovementController : MonoBehaviour
get
=>
m_Grounded
;
}
public
float
GroundCheckDistance
{
set
=>
m_GroundCheckDistance
=
value
;
get
=>
m_GroundCheckDistance
;
}
public
void
AddJumpCharge
(
int
amount
)
{
m_TempJumpCount
+=
amount
;
...
...
@@ -205,14 +224,14 @@ public class MovementController : MonoBehaviour
private
void
OnCollisionEnter2D
(
Collision2D
other
)
{
if
(
other
.
gameObject
.
layer
==
m_WhatIsGround
)
m_Airborn
=
false
;
if
(
other
.
gameObject
.
layer
==
9
)
m_Airborn
=
false
;
}
private
void
OnCollisionExit2D
(
Collision2D
other
)
{
if
(
other
.
gameObject
.
layer
==
m_WhatIsGround
)
m_Airborn
=
true
;
if
(
other
.
gameObject
.
layer
==
9
)
m_Airborn
=
true
;
}
...
...
Assets/_Game/Scripts/Player/PlayerAnimation.cs
0 → 100644
View file @
c45115d7
using
System.Collections
;
using
System.Collections.Generic
;
using
UnityEngine
;
public
class
PlayerAnimation
:
MonoBehaviour
{
public
AnimationCurve
m_AirScale
;
public
float
m_Time
=
10f
;
private
bool
m_isAnimating
=
false
;
private
bool
m_isScaled
=
false
;
private
MovementController
r_Controller
;
// Start is called before the first frame update
void
Start
()
{
r_Controller
=
GetComponent
<
MovementController
>();
}
// Update is called once per frame
void
Update
()
{
ScalePlayer
();
}
public
void
ScalePlayer
()
{
if
(
Input
.
GetKeyDown
(
KeyCode
.
P
)
&&
!
m_isAnimating
)
{
if
(!
m_isScaled
)
{
StartCoroutine
(
ScaleUp
(
m_Time
));
}
else
{
StartCoroutine
(
ScaleDown
(
m_Time
));
}
}
}
private
IEnumerator
ScaleUp
(
float
t
)
{
m_isAnimating
=
true
;
m_isScaled
=
true
;
Vector3
s
=
transform
.
localScale
;
float
step
=
1
/
t
;
for
(
float
i
=
0
;
i
<=
1
;
i
+=
step
)
{
float
x
=
m_AirScale
.
Evaluate
(
i
);
transform
.
localScale
=
s
+
new
Vector3
(
x
*
Mathf
.
Sign
(
s
.
x
),
x
,
x
);
r_Controller
.
GroundCheckDistance
+=
x
/
2
;
yield
return
new
WaitForFixedUpdate
();
}
m_isAnimating
=
false
;
}
private
IEnumerator
ScaleDown
(
float
t
)
{
m_isAnimating
=
true
;
m_isScaled
=
false
;
Vector3
s
=
transform
.
localScale
;
float
step
=
1
/
t
;
for
(
float
i
=
0
;
i
<=
1
;
i
+=
step
)
{
float
x
=
m_AirScale
.
Evaluate
(
i
);
transform
.
localScale
=
s
-
new
Vector3
(
x
*
Mathf
.
Sign
(
s
.
x
),
x
,
x
);
r_Controller
.
GroundCheckDistance
-=
x
/
2
;
yield
return
new
WaitForFixedUpdate
();
}
m_isAnimating
=
false
;
}
}
Assets/_Game/Scripts/Player/PlayerAnimation.cs.meta
0 → 100644
View file @
c45115d7
fileFormatVersion: 2
guid: 04143d4b812b542329f18723f680be69
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
Assets/_Game/Scripts/Player/PlayerInteract.cs
View file @
c45115d7
...
...
@@ -137,7 +137,7 @@ namespace _Game.Scripts.Player
_waterAttack
.
enabled
=
false
;
break
;
}
_controller
.
SetMovementParameters
(
state
.
GetCurrentMovementState
());
//
_controller.SetMovementParameters(state.GetCurrentMovementState());
_targetScript
.
InfuseElement
();
}
...
...
Assets/_Game/Scripts/Scriptable Object/ElementGameEventListener.cs
View file @
c45115d7
...
...
@@ -8,6 +8,7 @@ namespace _Game.Scripts.Scriptable_Object
{
[
SerializeField
]
private
ElementGameEvent
gameEvent
;
[
SerializeField
]
private
UnityEvent
allResponse
;
[
SerializeField
]
private
UnityEvent
airResponse
;
[
SerializeField
]
private
UnityEvent
earthResponse
;
[
SerializeField
]
private
UnityEvent
fireResponse
;
...
...
@@ -26,6 +27,7 @@ namespace _Game.Scripts.Scriptable_Object
public
void
OnEventRaised
(
InfusedElement
element
)
{
allResponse
.
Invoke
();
switch
(
element
)
{
case
InfusedElement
.
Air
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment