Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Tommé Nöll
seedling
Commits
f79517f5
Commit
f79517f5
authored
May 24, 2019
by
Max
Browse files
Added melee attack to shroombie and some comments to scripts
parent
32d2037e
Changes
7
Hide whitespace changes
Inline
Side-by-side
Assets/Animations/ShroombieAnimator.controller
View file @
f79517f5
...
...
@@ -63,51 +63,51 @@ AnimatorStateMachine:
m_ChildStates
:
-
serializedVersion
:
1
m_State
:
{
fileID
:
1986224911852984551
}
m_Position
:
{
x
:
16
0
,
y
:
-70
0
,
z
:
0
}
m_Position
:
{
x
:
0
,
y
:
61
0
,
z
:
0
}
-
serializedVersion
:
1
m_State
:
{
fileID
:
-5726667960790394763
}
m_Position
:
{
x
:
57
0
,
y
:
-70
0
,
z
:
0
}
m_Position
:
{
x
:
41
0
,
y
:
61
0
,
z
:
0
}
-
serializedVersion
:
1
m_State
:
{
fileID
:
1613508073392012693
}
m_Position
:
{
x
:
37
0
,
y
:
-59
0
,
z
:
0
}
m_Position
:
{
x
:
21
0
,
y
:
72
0
,
z
:
0
}
-
serializedVersion
:
1
m_State
:
{
fileID
:
-146394166480829469
}
m_Position
:
{
x
:
16
0
,
y
:
-4
80
,
z
:
0
}
m_Position
:
{
x
:
0
,
y
:
8
3
0
,
z
:
0
}
-
serializedVersion
:
1
m_State
:
{
fileID
:
1908170977453030910
}
m_Position
:
{
x
:
57
0
,
y
:
-4
80
,
z
:
0
}
m_Position
:
{
x
:
41
0
,
y
:
8
3
0
,
z
:
0
}
-
serializedVersion
:
1
m_State
:
{
fileID
:
-8829084069974649071
}
m_Position
:
{
x
:
16
0
,
y
:
-37
0
,
z
:
0
}
m_Position
:
{
x
:
0
,
y
:
94
0
,
z
:
0
}
-
serializedVersion
:
1
m_State
:
{
fileID
:
7901652581942858491
}
m_Position
:
{
x
:
-
6
0
,
y
:
-3
90
,
z
:
0
}
m_Position
:
{
x
:
-
22
0
,
y
:
9
2
0
,
z
:
0
}
-
serializedVersion
:
1
m_State
:
{
fileID
:
-6900157825039734015
}
m_Position
:
{
x
:
57
0
,
y
:
-37
0
,
z
:
0
}
m_Position
:
{
x
:
41
0
,
y
:
94
0
,
z
:
0
}
-
serializedVersion
:
1
m_State
:
{
fileID
:
-7097187114788860558
}
m_Position
:
{
x
:
79
0
,
y
:
-3
90
,
z
:
0
}
m_Position
:
{
x
:
63
0
,
y
:
9
2
0
,
z
:
0
}
-
serializedVersion
:
1
m_State
:
{
fileID
:
5457543667087210628
}
m_Position
:
{
x
:
-
3
0
,
y
:
-5
70
,
z
:
0
}
m_Position
:
{
x
:
-
19
0
,
y
:
7
4
0
,
z
:
0
}
-
serializedVersion
:
1
m_State
:
{
fileID
:
-2279491765987039389
}
m_Position
:
{
x
:
-
1
20
,
y
:
-4
80
,
z
:
0
}
m_Position
:
{
x
:
-2
8
0
,
y
:
8
3
0
,
z
:
0
}
-
serializedVersion
:
1
m_State
:
{
fileID
:
4045761067660368507
}
m_Position
:
{
x
:
85
0
,
y
:
-4
80
,
z
:
0
}
m_Position
:
{
x
:
69
0
,
y
:
8
3
0
,
z
:
0
}
-
serializedVersion
:
1
m_State
:
{
fileID
:
686666860851240575
}
m_Position
:
{
x
:
77
0
,
y
:
-58
0
,
z
:
0
}
m_Position
:
{
x
:
61
0
,
y
:
73
0
,
z
:
0
}
m_ChildStateMachines
:
[]
m_AnyStateTransitions
:
[]
m_EntryTransitions
:
[]
m_StateMachineTransitions
:
{}
m_StateMachineBehaviours
:
[]
m_AnyStatePosition
:
{
x
:
9
70
,
y
:
-9
0
,
z
:
0
}
m_EntryPosition
:
{
x
:
59
0
,
y
:
-81
0
,
z
:
0
}
m_ExitPosition
:
{
x
:
9
70
,
y
:
-
10
,
z
:
0
}
m_AnyStatePosition
:
{
x
:
7
6
0
,
y
:
108
0
,
z
:
0
}
m_EntryPosition
:
{
x
:
43
0
,
y
:
50
0
,
z
:
0
}
m_ExitPosition
:
{
x
:
7
6
0
,
y
:
1
16
0
,
z
:
0
}
m_ParentStateMachinePosition
:
{
x
:
800
,
y
:
20
,
z
:
0
}
m_DefaultState
:
{
fileID
:
-5726667960790394763
}
---
!u!114
&-7454672916790918509
...
...
@@ -307,7 +307,15 @@ MonoBehaviour:
m_Script
:
{
fileID
:
11500000
,
guid
:
ba893100c96824248a33342bc047efb6
,
type
:
3
}
m_Name
:
m_EditorClassIdentifier
:
facingRight
:
0
meleeTiming
:
0
verticalOffset
:
0.5
horizontalOffset
:
0.5
attackRangeX
:
1
attackRangeY
:
1
whatIsPlayer
:
serializedVersion
:
2
m_Bits
:
1024
---
!u!1101
&-5990042557740589001
AnimatorStateTransition
:
m_ObjectHideFlags
:
1
...
...
@@ -960,37 +968,37 @@ AnimatorController:
m_DefaultFloat
:
0
m_DefaultInt
:
0
m_DefaultBool
:
0
m_Controller
:
{
fileID
:
0
}
m_Controller
:
{
fileID
:
910000
0
}
-
m_Name
:
MovingRight
m_Type
:
4
m_DefaultFloat
:
0
m_DefaultInt
:
0
m_DefaultBool
:
0
m_Controller
:
{
fileID
:
0
}
m_Controller
:
{
fileID
:
910000
0
}
-
m_Name
:
Melee
m_Type
:
4
m_DefaultFloat
:
0
m_DefaultInt
:
0
m_DefaultBool
:
0
m_Controller
:
{
fileID
:
0
}
m_Controller
:
{
fileID
:
910000
0
}
-
m_Name
:
Ranged
m_Type
:
4
m_DefaultFloat
:
0
m_DefaultInt
:
0
m_DefaultBool
:
0
m_Controller
:
{
fileID
:
0
}
m_Controller
:
{
fileID
:
910000
0
}
-
m_Name
:
RunBack
m_Type
:
4
m_DefaultFloat
:
0
m_DefaultInt
:
0
m_DefaultBool
:
0
m_Controller
:
{
fileID
:
0
}
m_Controller
:
{
fileID
:
910000
0
}
-
m_Name
:
RunTowards
m_Type
:
4
m_DefaultFloat
:
0
m_DefaultInt
:
0
m_DefaultBool
:
0
m_Controller
:
{
fileID
:
0
}
m_Controller
:
{
fileID
:
910000
0
}
m_AnimatorLayers
:
-
serializedVersion
:
5
m_Name
:
Base Layer
...
...
@@ -1565,7 +1573,15 @@ MonoBehaviour:
m_Script
:
{
fileID
:
11500000
,
guid
:
ba893100c96824248a33342bc047efb6
,
type
:
3
}
m_Name
:
m_EditorClassIdentifier
:
facingRight
:
1
meleeTiming
:
0
verticalOffset
:
0.5
horizontalOffset
:
0.5
attackRangeX
:
1
attackRangeY
:
1
whatIsPlayer
:
serializedVersion
:
2
m_Bits
:
1024
---
!u!1101
&8600512932900247119
AnimatorStateTransition
:
m_ObjectHideFlags
:
1
...
...
Assets/Scripts/Enemies/CrawlerWalkBehaviour.cs
View file @
f79517f5
...
...
@@ -45,51 +45,67 @@ public class CrawlerWalkBehaviour : StateMachineBehaviour
{
if
(
Vector3
.
Distance
(
myTransform
.
position
,
player
.
transform
.
position
)
<
alertDistance
&&
isIdle
)
{
animator
.
SetBool
(
"Alerted"
,
true
);
animator
.
SetBool
(
"Alerted"
,
true
);
//wechselt in die Alerted Animation
}
else
if
(
Vector3
.
Distance
(
myTransform
.
position
,
player
.
transform
.
position
)
>
backToIdleDistance
&&
!
isIdle
)
{
animator
.
SetBool
(
"Alerted"
,
false
);
animator
.
SetBool
(
"Alerted"
,
false
);
//wechselt zurück in die Idle Animation
}
if
(
isWalkingRight
)
{
Vector2
lineCastPosition
=
myTransform
.
position
+
myTransform
.
right
*
myWidth
;
Vector2
right
=
new
Vector2
(
myTransform
.
right
.
x
,
myTransform
.
right
.
y
);
//wenn isOnGround Boden trifft, dann kann sich der Gegner noch bewegen
bool
isOnGround
=
Physics2D
.
Linecast
(
lineCastPosition
,
lineCastPosition
+
Vector2
.
down
,
whatIsGround
);
Debug
.
DrawLine
(
lineCastPosition
,
lineCastPosition
+
Vector2
.
down
);
Vector2
right
=
new
Vector2
(
myTransform
.
right
.
x
,
myTransform
.
right
.
y
);
//wenn isBlocked nichts trifft, dann kann sich der Gegner noch bewegen
bool
isBlocked
=
Physics2D
.
Linecast
(
lineCastPosition
,
lineCastPosition
+
right
*
0.1f
,
whatIsGround
);
//Visualisierung der linecasts mit Linien im Szene-Modus
Debug
.
DrawLine
(
lineCastPosition
,
lineCastPosition
+
Vector2
.
down
);
Debug
.
DrawLine
(
lineCastPosition
,
lineCastPosition
+
right
*
0.1f
);
//schaut, ob Gegner sich noch bewegen kann
//wenn nein
if
(!
isOnGround
||
isBlocked
)
{
animator
.
SetBool
(
"MovingRight"
,
false
);
animator
.
SetBool
(
"MovingRight"
,
false
);
//wechselt die Bewegungsrichtung
}
//wenn ja
else
{
myTransform
.
position
=
Vector3
.
MoveTowards
(
myTransform
.
position
,
myTransform
.
position
+
Vector3
.
right
,
speed
*
Time
.
deltaTime
);
myTransform
.
position
=
Vector3
.
MoveTowards
(
myTransform
.
position
,
myTransform
.
position
+
Vector3
.
right
,
speed
*
Time
.
deltaTime
);
//bewegt den Gegner nach rechts
}
}
else
{
//Visualisierung der casts mit Linien im Szene-Modus
Vector2
lineCastPosition
=
myTransform
.
position
-
myTransform
.
right
*
myWidth
;
Vector2
right
=
new
Vector2
(
myTransform
.
right
.
x
,
myTransform
.
right
.
y
);
//wenn isOnGround Boden trifft, dann kann sich der Gegner noch bewegen
bool
isOnGround
=
Physics2D
.
Linecast
(
lineCastPosition
,
lineCastPosition
+
Vector2
.
down
,
whatIsGround
);
Debug
.
DrawLine
(
lineCastPosition
,
lineCastPosition
+
Vector2
.
down
);
Vector2
right
=
new
Vector2
(
myTransform
.
right
.
x
,
myTransform
.
right
.
y
);
//wenn isBlocked nichts trifft, dann kann sich der Gegner noch bewegen
bool
isBlocked
=
Physics2D
.
Linecast
(
lineCastPosition
,
lineCastPosition
-
right
*
0.1f
,
whatIsGround
);
//Visualisierung der linecasts mit Linien im Szene-Modus
Debug
.
DrawLine
(
lineCastPosition
,
lineCastPosition
+
Vector2
.
down
);
Debug
.
DrawLine
(
lineCastPosition
,
lineCastPosition
-
right
*
0.1f
);
//schaut, ob Gegner sich noch bewegen kann
//wenn nein
if
(!
isOnGround
||
isBlocked
)
{
animator
.
SetBool
(
"MovingRight"
,
true
);
animator
.
SetBool
(
"MovingRight"
,
true
);
//wechselt die Bewegungsrichtung
}
//wenn ja
else
{
myTransform
.
position
=
Vector3
.
MoveTowards
(
myTransform
.
position
,
myTransform
.
position
-
Vector3
.
right
,
speed
*
Time
.
deltaTime
);
myTransform
.
position
=
Vector3
.
MoveTowards
(
myTransform
.
position
,
myTransform
.
position
-
Vector3
.
right
,
speed
*
Time
.
deltaTime
);
//bewegt den Gegner nach links
}
}
}
...
...
Assets/Scripts/Enemies/PlantAI.cs
View file @
f79517f5
...
...
@@ -14,13 +14,7 @@ public class PlantAI : MonoBehaviour
//gibt die Zeit zwischen Spawns und die Geschwindigkeit der Sporen an
public
float
timeBetweenSporeSpawns
;
private
float
timer
;
// Start is called before the first frame update
void
Start
()
{
}
private
float
timer
;
// Update is called once per frame
void
Update
()
...
...
@@ -29,6 +23,7 @@ public class PlantAI : MonoBehaviour
{
GameObject
g
;
//rotiert die Sporen passend, sodass "oben" für die Sporen die jeweilige angegebene Richtung ist
if
(
shootingDirection
==
ShootDir
.
LEFT
)
{
g
=
Instantiate
(
sporePrefab
,
transform
.
position
+
Vector3
.
left
*
1.5f
,
Quaternion
.
Euler
(
transform
.
rotation
.
x
,
transform
.
rotation
.
y
,
90f
));
...
...
Assets/Scripts/Enemies/ShroombieMeleeBehaviour.cs
View file @
f79517f5
...
...
@@ -4,26 +4,107 @@ using UnityEngine;
public
class
ShroombieMeleeBehaviour
:
StateMachineBehaviour
{
//Referenz auf Position
private
Transform
myTransform
;
//Referenz auf den Spieler
private
GameObject
player
;
//bool zum Anzeigen der Richtung
public
bool
facingRight
;
//verschiebt das Erscheinen der Hitbox um diese Anzahl von Sekunden (zum Anpassen an Animation)
public
float
meleeTiming
;
//wie lange die Hitbox noch da bleibt
public
float
hitBoxLingering
;
private
float
timer
;
private
float
hBTimer
;
//bool um zu schauen ob geschossen wurde
private
bool
done
;
//Offset des Colliders zum Sprite
public
float
verticalOffset
;
public
float
horizontalOffset
;
//Radius des Angriffs
public
float
attackRangeX
;
public
float
attackRangeY
;
//Layer, auf der der Spieler ist
public
LayerMask
whatIsPlayer
;
// OnStateEnter is called when a transition starts and the state machine starts to evaluate this state
override
public
void
OnStateEnter
(
Animator
animator
,
AnimatorStateInfo
stateInfo
,
int
layerIndex
)
{
player
=
GameObject
.
FindGameObjectWithTag
(
"Player"
);
player
=
GameObject
.
FindGameObjectWithTag
(
"Player"
);
timer
=
meleeTiming
;
hBTimer
=
hitBoxLingering
;
done
=
false
;
myTransform
=
animator
.
transform
;
}
// OnStateUpdate is called on each Update frame between OnStateEnter and OnStateExit callbacks
override
public
void
OnStateUpdate
(
Animator
animator
,
AnimatorStateInfo
stateInfo
,
int
layerIndex
)
{
animator
.
SetBool
(
"Melee"
,
false
);
if
(
timer
<
0f
&&
!
done
)
{
//Position und Größe des BoxColliders
Vector3
attackPos
;
Vector3
size
=
new
Vector3
(
attackRangeX
,
attackRangeY
,
0f
);
//ändert die Angriffsposition je nach Blickrichtung
if
(
facingRight
)
{
attackPos
=
myTransform
.
position
+
horizontalOffset
*
Vector3
.
right
+
verticalOffset
*
Vector3
.
up
;
}
else
{
attackPos
=
myTransform
.
position
-
horizontalOffset
*
Vector3
.
right
+
verticalOffset
*
Vector3
.
up
;
}
//lässt einen BoxCollider erscheinen und setzt alle Kollisionen in das Array
Collider2D
[]
playerToDamage
=
Physics2D
.
OverlapBoxAll
(
attackPos
,
size
,
whatIsPlayer
);
//Visualisierung der Hitbox für den Szenemodus
Vector3
topRight
=
new
Vector3
(
attackPos
.
x
+
(
attackRangeX
/
2
),
attackPos
.
y
+
(
attackRangeY
/
2
),
attackPos
.
z
);
Vector3
topLeft
=
new
Vector3
(
attackPos
.
x
-
(
attackRangeX
/
2
),
attackPos
.
y
+
(
attackRangeY
/
2
),
attackPos
.
z
);
Vector3
bottomLeft
=
new
Vector3
(
attackPos
.
x
-
(
attackRangeX
/
2
),
attackPos
.
y
-
(
attackRangeY
/
2
),
attackPos
.
z
);
Vector3
bottomRight
=
new
Vector3
(
attackPos
.
x
+
(
attackRangeX
/
2
),
attackPos
.
y
-
(
attackRangeY
/
2
),
attackPos
.
z
);
Debug
.
DrawLine
(
topRight
,
topLeft
);
Debug
.
DrawLine
(
topLeft
,
bottomLeft
);
Debug
.
DrawLine
(
bottomLeft
,
bottomRight
);
Debug
.
DrawLine
(
bottomRight
,
topRight
);
for
(
int
i
=
0
;
i
<
playerToDamage
.
Length
;
i
++)
{
//TODO: Spieler Schaden hinzufügen
}
//done auf true setzen, wenn die Hitbox nicht mehr erscheinen soll
if
(
hBTimer
<
0
)
{
hBTimer
=
hitBoxLingering
;
timer
=
meleeTiming
;
done
=
true
;
}
else
{
hBTimer
-=
Time
.
deltaTime
;
}
}
else
{
timer
-=
Time
.
deltaTime
;
}
}
// OnStateExit is called when a transition ends and the state machine finishes evaluating this state
override
public
void
OnStateExit
(
Animator
animator
,
AnimatorStateInfo
stateInfo
,
int
layerIndex
)
{
}
//
override public void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
//
{
//
//
}
}
Assets/Scripts/Enemies/ShroombieRangedBehaviour.cs
View file @
f79517f5
...
...
@@ -23,7 +23,7 @@ public class ShroombieRangedBehaviour : StateMachineBehaviour
//Geschwindigkeit des Projektils
public
float
speed
;
//bool um zu schauen ob geschossen wurde
//bool um zu schauen ob
während der Animation schon
geschossen wurde
private
bool
done
;
//Offset des shootingPoint zum Sprite
...
...
@@ -50,6 +50,7 @@ public class ShroombieRangedBehaviour : StateMachineBehaviour
{
Vector3
shootingPoint
;
//ändert den Schusspunkt je nach Blickrichtung
if
(
facingRight
)
{
shootingPoint
=
myTransform
.
position
+
horizontalOffset
*
Vector3
.
right
+
verticalOffset
*
Vector3
.
up
;
...
...
@@ -59,9 +60,11 @@ public class ShroombieRangedBehaviour : StateMachineBehaviour
shootingPoint
=
myTransform
.
position
-
horizontalOffset
*
Vector3
.
right
+
verticalOffset
*
Vector3
.
up
;
}
//berechnet die Richtung und den benötigten Winkel für das Projektil
Vector3
dir
=
player
.
transform
.
position
-
shootingPoint
;
float
rotZ
=
Mathf
.
Atan2
(-
dir
.
normalized
.
x
,
dir
.
normalized
.
y
)
*
Mathf
.
Rad2Deg
;
//lässt das Projekil mit der richtigen Rotation erscheinen
Instantiate
(
projectile
,
shootingPoint
,
Quaternion
.
Euler
(
0f
,
0f
,
rotZ
));
timer
=
shootTiming
;
...
...
Assets/Scripts/Enemies/ShroombieWalkBehaviour.cs
View file @
f79517f5
...
...
@@ -52,6 +52,7 @@ public class ShroombieWalkBehaviour : StateMachineBehaviour
myWidth
=
sprite
.
bounds
.
extents
.
x
;
myHeight
=
sprite
.
bounds
.
extents
.
y
;
//eine zufällige Zahl berechnen, wenn der Gegner aufmerksam auf den Spieler ist
if
(!
idle
)
{
random
=
Random
.
Range
(
0
,
100
);
...
...
@@ -61,61 +62,62 @@ public class ShroombieWalkBehaviour : StateMachineBehaviour
// OnStateUpdate is called on each Update frame between OnStateEnter and OnStateExit callbacks
override
public
void
OnStateUpdate
(
Animator
animator
,
AnimatorStateInfo
stateInfo
,
int
layerIndex
)
{
animator
.
SetBool
(
"RunTowards"
,
false
);
//bools auf false setzen, damit der Übergang zurück geschieht
animator
.
SetBool
(
"RunTowards"
,
false
);
animator
.
SetBool
(
"RunBack"
,
false
);
//Gegner auf alarmiert setzen, wenn Spieler in Reichweite
if
(
Vector3
.
Distance
(
myTransform
.
position
,
player
.
transform
.
position
)
<
alertDistance
&&
idle
)
{
animator
.
SetBool
(
"Alerted"
,
true
);
}
//Gegner auf nicht alarmiert setzen, wenn Spieler wieder außer Reichweite
else
if
(
Vector3
.
Distance
(
myTransform
.
position
,
player
.
transform
.
position
)
>
backToIdleDistance
&&
!
idle
)
{
animator
.
SetBool
(
"Alerted"
,
false
);
}
if
(
idle
||
walkingTowards
)
{
Walk
(
animator
);
}
else
if
(
walkingBack
)
//Gegner soll laufen, wenn er in einem der "Laufmodi" ist
if
(
idle
||
walkingTowards
||
walkingBack
)
{
Walk
(
animator
);
}
else
{
isFacingPlayer
=
CheckIfFacingPlayer
(
myTransform
);
if
(
isFacingPlayer
)
isFacingPlayer
=
CheckIfFacingPlayer
(
myTransform
);
//überprüfen, ob der Gegner auf den Spieler schaut
//wenn ja, dann einen Angriff aussuchen
if
(
isFacingPlayer
)
{
//Fernkampfangriff
if
(
0
<=
random
&&
random
<=
meleeProbability
)
if
(
0
<=
random
&&
random
<=
meleeProbability
)
{
animator
.
SetBool
(
"Ranged"
,
true
);
}
//Nahkampfangriff, wenn in Reichweite
else
if
(
meleeProbability
<=
random
&&
random
<=
meleeProbability
+
rangedProbability
&&
Vector3
.
Distance
(
myTransform
.
position
,
player
.
transform
.
position
)
<
meleeRange
)
else
if
(
meleeProbability
<=
random
&&
random
<=
meleeProbability
+
rangedProbability
&&
Vector3
.
Distance
(
myTransform
.
position
,
player
.
transform
.
position
)
<
meleeRange
)
{
animator
.
SetBool
(
"Melee"
,
true
);
}
//auf Spieler zu gehen, wenn nicht in
R
eichweite
//auf Spieler zu gehen, wenn nicht in
Nachkampfr
eichweite
else
if
(
meleeProbability
<=
random
&&
random
<=
meleeProbability
+
rangedProbability
&&
Vector3
.
Distance
(
myTransform
.
position
,
player
.
transform
.
position
)
>=
meleeRange
)
{
Walk
(
animator
);
}
//normal auf den Spieler zu bewegen
else
if
(
meleeProbability
+
rangedProbability
<=
random
&&
random
<=
meleeProbability
+
rangedProbability
+
(
walkProbability
/
2
))
else
if
(
meleeProbability
+
rangedProbability
<=
random
&&
random
<=
meleeProbability
+
rangedProbability
+
(
walkProbability
/
2
))
{
animator
.
SetBool
(
"RunTowards"
,
true
);
animator
.
SetBool
(
"RunTowards"
,
true
);
//Animationwechsel
}
//rückwärts bewegen
else
{
animator
.
SetBool
(
"RunBack"
,
true
);
animator
.
SetBool
(
"RunBack"
,
true
);
//Animationwechsel
}
}
//wenn nein, dann in die entgegengesetzte Richtung drehen
else
{
if
(
walkingRight
)
if
(
walkingRight
)
{
animator
.
SetBool
(
"MovingRight"
,
false
);
}
...
...
Assets/Scripts/Enemies/sporeMovement.cs
View file @
f79517f5
...
...
@@ -13,6 +13,7 @@ public class sporeMovement : MonoBehaviour
// Start is called before the first frame update
void
Start
()
{
//bewegt die Hitbox entgegen der Bewegungsrichtung, damit es visuell besser passt
Vector2
offset
;
offset
=
Vector3
.
down
*
0.75f
;
col
.
offset
=
offset
;
...
...
@@ -21,11 +22,13 @@ public class sporeMovement : MonoBehaviour
// Update is called once per frame
void
Update
()
{
//bewegt Sporen "nach oben"
transform
.
Translate
(
Vector3
.
up
*
speed
*
Time
.
deltaTime
);
}
private
void
OnCollisionEnter2D
(
Collision2D
other
)
{
//bei einer Kollision einen Explosioneffekt abspielen und Partikel zerstören
Instantiate
(
explodeEffect
,
transform
.
position
,
Quaternion
.
identity
);
Destroy
(
gameObject
);
}
...
...
Write
Preview
Supports
Markdown
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