Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
tetra-tower
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Oenos
tetra-tower
Commits
de12185d
Commit
de12185d
authored
Feb 13, 2019
by
15김민규
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
벽을 짚고 있는지 검사할 수 있음
parent
6f7548ef
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
108 additions
and
19 deletions
+108
-19
Goblin.prefab
Assets/Prefabs/Characters/Enemy/Goblin.prefab
+7
-9
testEnemy.unity
Assets/Scenes/testEnemy.unity
+43
-1
Enemy.cs
Assets/Scripts/Characters/Enemy/Enemy.cs
+58
-9
No files found.
Assets/Prefabs/Characters/Enemy/Goblin.prefab
View file @
de12185d
...
...
@@ -87,7 +87,7 @@ Transform:
m_PrefabInternal
:
{
fileID
:
100100000
}
m_GameObject
:
{
fileID
:
1225288737757304
}
m_LocalRotation
:
{
x
:
-0
,
y
:
-0
,
z
:
-0
,
w
:
1
}
m_LocalPosition
:
{
x
:
-0.
234
,
y
:
0.621
,
z
:
0
}
m_LocalPosition
:
{
x
:
-0.
142
,
y
:
0.626
,
z
:
0
}
m_LocalScale
:
{
x
:
1
,
y
:
1
,
z
:
1
}
m_Children
:
-
{
fileID
:
4140258981397796
}
...
...
@@ -115,7 +115,7 @@ Transform:
m_PrefabInternal
:
{
fileID
:
100100000
}
m_GameObject
:
{
fileID
:
1734061800721222
}
m_LocalRotation
:
{
x
:
0
,
y
:
0
,
z
:
0
,
w
:
1
}
m_LocalPosition
:
{
x
:
0
,
y
:
0
,
z
:
0
}
m_LocalPosition
:
{
x
:
0
.133
,
y
:
0.009
,
z
:
0
}
m_LocalScale
:
{
x
:
1
,
y
:
1
,
z
:
1
}
m_Children
:
[]
m_Father
:
{
fileID
:
4015301101001556
}
...
...
@@ -128,7 +128,7 @@ Transform:
m_PrefabInternal
:
{
fileID
:
100100000
}
m_GameObject
:
{
fileID
:
1636491341446076
}
m_LocalRotation
:
{
x
:
-0
,
y
:
-0
,
z
:
-0
,
w
:
1
}
m_LocalPosition
:
{
x
:
6.01
,
y
:
2.009
,
z
:
0
}
m_LocalPosition
:
{
x
:
0.862
,
y
:
0
,
z
:
0
}
m_LocalScale
:
{
x
:
1
,
y
:
1
,
z
:
1
}
m_Children
:
-
{
fileID
:
4015301101001556
}
...
...
@@ -167,7 +167,7 @@ BoxCollider2D:
m_IsTrigger
:
1
m_UsedByEffector
:
0
m_UsedByComposite
:
0
m_Offset
:
{
x
:
0
.2218492
,
y
:
-0.06722689
}
m_Offset
:
{
x
:
0
,
y
:
-0.079675555
}
m_SpriteTilingProperty
:
border
:
{
x
:
0
,
y
:
0
,
z
:
0
,
w
:
0
}
pivot
:
{
x
:
0
,
y
:
0
}
...
...
@@ -178,7 +178,7 @@ BoxCollider2D:
adaptiveTiling
:
0
m_AutoTiling
:
0
serializedVersion
:
2
m_Size
:
{
x
:
0.1
7983007
,
y
:
1.1344538
}
m_Size
:
{
x
:
0.1
9960898
,
y
:
1.1095564
}
m_EdgeRadius
:
0
---
!u!61
&61254635014177320
BoxCollider2D
:
...
...
@@ -192,7 +192,7 @@ BoxCollider2D:
m_IsTrigger
:
0
m_UsedByEffector
:
0
m_UsedByComposite
:
0
m_Offset
:
{
x
:
-0.001632452
,
y
:
0.553847
6
}
m_Offset
:
{
x
:
0
,
y
:
0.555424
6
}
m_SpriteTilingProperty
:
border
:
{
x
:
0
,
y
:
0
,
z
:
0
,
w
:
0
}
pivot
:
{
x
:
0
,
y
:
0
}
...
...
@@ -203,7 +203,7 @@ BoxCollider2D:
adaptiveTiling
:
0
m_AutoTiling
:
0
serializedVersion
:
2
m_Size
:
{
x
:
0.
5742383
,
y
:
1.126192
}
m_Size
:
{
x
:
0.
7505637
,
y
:
1.109323
}
m_EdgeRadius
:
0
---
!u!61
&61362187134790794
BoxCollider2D
:
...
...
@@ -267,8 +267,6 @@ MonoBehaviour:
attackRange
:
1
patrolSpeed
:
1.5
trackSpeed
:
2.5
playerDistance
:
0
untouchable
:
0
---
!u!114
&114173716467154830
MonoBehaviour
:
m_ObjectHideFlags
:
1
...
...
Assets/Scenes/testEnemy.unity
View file @
de12185d
...
...
@@ -488,7 +488,7 @@ Prefab:
objectReference
:
{
fileID
:
0
}
-
target
:
{
fileID
:
1560605499280558
,
guid
:
7c6db9a9ca4150a438bd5114c58a37cf
,
type
:
2
}
propertyPath
:
m_IsActive
value
:
1
value
:
0
objectReference
:
{
fileID
:
0
}
m_RemovedComponents
:
[]
m_SourcePrefab
:
{
fileID
:
100100000
,
guid
:
7c6db9a9ca4150a438bd5114c58a37cf
,
type
:
2
}
...
...
@@ -1893,3 +1893,45 @@ RectTransform:
m_AnchoredPosition
:
{
x
:
0
,
y
:
0
}
m_SizeDelta
:
{
x
:
0
,
y
:
0
}
m_Pivot
:
{
x
:
0
,
y
:
0
}
---
!u!1001
&2118897079
Prefab
:
m_ObjectHideFlags
:
0
serializedVersion
:
2
m_Modification
:
m_TransformParent
:
{
fileID
:
0
}
m_Modifications
:
-
target
:
{
fileID
:
4639192263818050
,
guid
:
a164c147037e89448820f7387c724c42
,
type
:
2
}
propertyPath
:
m_LocalPosition.x
value
:
0.862
objectReference
:
{
fileID
:
0
}
-
target
:
{
fileID
:
4639192263818050
,
guid
:
a164c147037e89448820f7387c724c42
,
type
:
2
}
propertyPath
:
m_LocalPosition.y
value
:
0
objectReference
:
{
fileID
:
0
}
-
target
:
{
fileID
:
4639192263818050
,
guid
:
a164c147037e89448820f7387c724c42
,
type
:
2
}
propertyPath
:
m_LocalPosition.z
value
:
0
objectReference
:
{
fileID
:
0
}
-
target
:
{
fileID
:
4639192263818050
,
guid
:
a164c147037e89448820f7387c724c42
,
type
:
2
}
propertyPath
:
m_LocalRotation.x
value
:
-0
objectReference
:
{
fileID
:
0
}
-
target
:
{
fileID
:
4639192263818050
,
guid
:
a164c147037e89448820f7387c724c42
,
type
:
2
}
propertyPath
:
m_LocalRotation.y
value
:
-0
objectReference
:
{
fileID
:
0
}
-
target
:
{
fileID
:
4639192263818050
,
guid
:
a164c147037e89448820f7387c724c42
,
type
:
2
}
propertyPath
:
m_LocalRotation.z
value
:
-0
objectReference
:
{
fileID
:
0
}
-
target
:
{
fileID
:
4639192263818050
,
guid
:
a164c147037e89448820f7387c724c42
,
type
:
2
}
propertyPath
:
m_LocalRotation.w
value
:
1
objectReference
:
{
fileID
:
0
}
-
target
:
{
fileID
:
4639192263818050
,
guid
:
a164c147037e89448820f7387c724c42
,
type
:
2
}
propertyPath
:
m_RootOrder
value
:
14
objectReference
:
{
fileID
:
0
}
m_RemovedComponents
:
[]
m_SourcePrefab
:
{
fileID
:
100100000
,
guid
:
a164c147037e89448820f7387c724c42
,
type
:
2
}
m_IsPrefabAsset
:
0
Assets/Scripts/Characters/Enemy/Enemy.cs
View file @
de12185d
...
...
@@ -37,7 +37,7 @@ public class Enemy : MonoBehaviour {
// for animation
private
Animator
animator
;
public
bool
Invisible
{
get
;
private
set
;
}
public
bool
Untouchable
{
get
;
private
set
;
}
public
bool
DuringKnockback
{
get
;
private
set
;
}
public
float
PlayerDistance
{
get
;
private
set
;
}
private
readonly
float
knockbackCritPoint
=
0.25f
;
...
...
@@ -57,16 +57,62 @@ public class Enemy : MonoBehaviour {
private
void
Start
()
{
currHealth
=
maxHealth
;
Invisible
=
Untouchable
=
false
;
Invisible
=
DuringKnockback
=
false
;
dropTable
=
enemyManager
.
DropTableByID
[
monsterID
];
Physics2D
.
IgnoreCollision
(
enemyManager
.
Player
.
gameObject
.
GetComponent
<
Collider2D
>(),
transform
.
parent
.
GetComponent
<
Collider2D
>());
}
private
void
FixedUpdate
()
{
bool
wallTest
=
IsTouchingWall
();
if
(
wallTest
)
{
Debug
.
Log
(
"Touching wall"
);
}
bool
cliffTest
=
IsAdvancingToCliff
();
if
(
cliffTest
)
{
Debug
.
Log
(
"Advancing to cliff"
);
}
}
private
void
Update
()
{
PlayerDistance
=
Vector2
.
Distance
(
enemyManager
.
Player
.
transform
.
position
,
transform
.
parent
.
position
);
}
// check whether enemy is advancing to cliff
public
bool
IsAdvancingToCliff
()
{
Vector2
velocity
=
transform
.
parent
.
GetComponent
<
Rigidbody2D
>().
velocity
;
Vector2
colliderSize
=
transform
.
parent
.
GetComponent
<
BoxCollider2D
>().
size
;
if
(
velocity
.
x
==
0
)
{
return
false
;
}
int
enemyDir
=
(
velocity
.
x
>
0
)
?
1
:
-
1
;
Vector2
origin
=
(
Vector2
)
transform
.
parent
.
position
+
enemyDir
*
new
Vector2
(
colliderSize
.
x
/
2.0f
,
0
);
Vector2
direction
=
Vector2
.
down
;
float
distance
=
colliderSize
.
y
/
2.0f
;
int
layerMask
=
LayerMask
.
NameToLayer
(
"platform"
);
RaycastHit2D
hit
=
Physics2D
.
Raycast
(
origin
,
direction
,
distance
,
layerMask
);
return
(
hit
.
collider
==
null
);
}
public
bool
IsTouchingWall
()
{
int
enemyDir
=
(
transform
.
parent
.
eulerAngles
.
y
==
180.0f
)
?
1
:
-
1
;
Vector2
colliderSize
=
transform
.
parent
.
GetComponent
<
BoxCollider2D
>().
size
;
Vector2
origin
=
(
Vector2
)
transform
.
parent
.
position
+
enemyDir
*
new
Vector2
(
colliderSize
.
x
/
2.0f
,
0
);
Vector2
direction
=
Vector2
.
right
*
enemyDir
;
float
distance
=
0.02f
;
int
layerMask
=
LayerMask
.
GetMask
(
"Wall"
,
"OuterWall"
);
RaycastHit2D
hit
=
Physics2D
.
Raycast
(
origin
,
direction
,
distance
,
layerMask
);
return
(
hit
.
collider
!=
null
);
}
// hit by player or debuff
public
void
GetDamaged
(
PlayerAttackInfo
attack
)
{
currHealth
-=
attack
.
damage
;
...
...
@@ -79,12 +125,15 @@ public class Enemy : MonoBehaviour {
float
knockbackDist
=
attack
.
damage
*
attack
.
knockBackMultiplier
/
weight
;
float
knockbackTime
=
(
knockbackDist
>=
0.5f
)
?
0.5f
:
knockbackDist
;
StartCoroutine
(
Knockback
(
knockbackDist
,
knockbackTime
));
if
(
knockbackDist
>=
knockbackCritPoint
)
if
(!
DuringKnockback
)
{
animator
.
SetFloat
(
"knockbackTime"
,
knockbackTime
);
animator
.
SetTrigger
(
"DamagedTrigger"
);
StartCoroutine
(
Knockback
(
knockbackDist
,
knockbackTime
));
if
(
knockbackDist
>=
knockbackCritPoint
)
{
animator
.
SetFloat
(
"knockbackTime"
,
knockbackTime
);
animator
.
SetTrigger
(
"DamagedTrigger"
);
}
}
}
...
...
@@ -141,7 +190,7 @@ public class Enemy : MonoBehaviour {
// Knockback
IEnumerator
Knockback
(
float
knockbackDist
,
float
knockbackTime
)
{
Untouchable
=
true
;
DuringKnockback
=
true
;
bool
isPlayerLeft
=
(
enemyManager
.
Player
.
transform
.
position
.
x
-
transform
.
parent
.
position
.
x
<=
0
);
float
knockbackVelocity
=
((
isPlayerLeft
)
?
1
:
-
1
)
*
knockbackDist
/
knockbackTime
;
...
...
@@ -153,7 +202,7 @@ public class Enemy : MonoBehaviour {
yield
return
new
WaitForSeconds
(
knockbackTime
);
Untouchable
=
false
;
DuringKnockback
=
false
;
}
// Debuff
...
...
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