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
2963b013
Commit
2963b013
authored
Feb 13, 2019
by
15김민규
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
고블린의 정상적인 이동이 가능해짐. 더이상 막히거나 떨어지지 않음.
parent
c626bd44
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
55 additions
and
45 deletions
+55
-45
Goblin Attack.anim
Assets/Animation/Enemy/Goblin/Goblin Attack.anim
+8
-1
Goblin.prefab
Assets/Prefabs/Characters/Enemy/Goblin.prefab
+1
-1
testEnemy.unity
Assets/Scenes/testEnemy.unity
+3
-3
EnemyMeleeIdle.cs
...Scripts/Characters/Enemy/Animator State/EnemyMeleeIdle.cs
+8
-12
EnemyMeleeTrack.cs
...cripts/Characters/Enemy/Animator State/EnemyMeleeTrack.cs
+31
-22
Enemy.cs
Assets/Scripts/Characters/Enemy/Enemy.cs
+4
-6
No files found.
Assets/Animation/Enemy/Goblin/Goblin Attack.anim
View file @
2963b013
...
...
@@ -161,4 +161,11 @@ AnimationClip:
m_HasGenericRootTransform
:
0
m_HasMotionFloatCurves
:
0
m_GenerateMotionCurves
:
0
m_Events
:
[]
m_Events
:
-
time
:
0
functionName
:
ChangeVelocityX
data
:
objectReferenceParameter
:
{
fileID
:
0
}
floatParameter
:
0
intParameter
:
0
messageOptions
:
0
Assets/Prefabs/Characters/Enemy/Goblin.prefab
View file @
2963b013
...
...
@@ -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
:
0.862
,
y
:
0
,
z
:
0
}
m_LocalPosition
:
{
x
:
0.862
,
y
:
1.405
,
z
:
0
}
m_LocalScale
:
{
x
:
1
,
y
:
1
,
z
:
1
}
m_Children
:
-
{
fileID
:
4015301101001556
}
...
...
Assets/Scenes/testEnemy.unity
View file @
2963b013
...
...
@@ -1340,7 +1340,7 @@ Prefab:
-
target
:
{
fileID
:
66792933649035248
,
guid
:
0443c2e9410bbe545bda40dc30fa6a63
,
type
:
2
}
propertyPath
:
m_ColliderPaths.Array.size
value
:
0
value
:
1
objectReference
:
{
fileID
:
0
}
-
target
:
{
fileID
:
4874486600194970
,
guid
:
0443c2e9410bbe545bda40dc30fa6a63
,
type
:
2
}
propertyPath
:
m_LocalPosition.x
...
...
@@ -1376,7 +1376,7 @@ Prefab:
objectReference
:
{
fileID
:
0
}
-
target
:
{
fileID
:
1915452461634262
,
guid
:
0443c2e9410bbe545bda40dc30fa6a63
,
type
:
2
}
propertyPath
:
m_IsActive
value
:
0
value
:
1
objectReference
:
{
fileID
:
0
}
m_RemovedComponents
:
[]
m_SourcePrefab
:
{
fileID
:
100100000
,
guid
:
0443c2e9410bbe545bda40dc30fa6a63
,
type
:
2
}
...
...
@@ -1963,7 +1963,7 @@ Prefab:
objectReference
:
{
fileID
:
0
}
-
target
:
{
fileID
:
4639192263818050
,
guid
:
a164c147037e89448820f7387c724c42
,
type
:
2
}
propertyPath
:
m_LocalPosition.y
value
:
0
value
:
1.405
objectReference
:
{
fileID
:
0
}
-
target
:
{
fileID
:
4639192263818050
,
guid
:
a164c147037e89448820f7387c724c42
,
type
:
2
}
propertyPath
:
m_LocalPosition.z
...
...
Assets/Scripts/Characters/Enemy/Animator State/EnemyMeleeIdle.cs
View file @
2963b013
...
...
@@ -3,16 +3,12 @@ using System.Collections.Generic;
using
UnityEngine
;
public
class
EnemyMeleeIdle
:
StateMachineBehaviour
{
Vector2
origin
;
float
patrolRange
;
float
patrolSpeed
;
float
noticeRange
;
Vector3
leftsideAngle
=
new
Vector3
(
0
,
0
,
0
);
Vector3
rightsideAngle
=
new
Vector3
(
0
,
180
,
0
);
Vector2
origin
;
Transform
animatorRoot
;
Enemy
enemy
;
NumeratedDir
moveDir
=
NumeratedDir
.
Left
;
// go left first
// 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
)
{
...
...
@@ -25,7 +21,7 @@ public class EnemyMeleeIdle : StateMachineBehaviour {
patrolSpeed
=
enemy
.
patrolSpeed
;
enemy
.
ChangeDir
(
NumeratedDir
.
Left
);
enemy
.
ChangeVelocityX
(
(
int
)
m
oveDir
*
patrolSpeed
);
enemy
.
ChangeVelocityX
(
enemy
.
M
oveDir
*
patrolSpeed
);
}
// OnStateUpdate is called on each Update frame between OnStateEnter and OnStateExit callbacks
...
...
@@ -35,16 +31,16 @@ public class EnemyMeleeIdle : StateMachineBehaviour {
animator
.
SetTrigger
(
"TrackTrigger"
);
return
;
}
int
integerDir
=
(
int
)
enemy
.
MoveDir
;
float
span
=
animatorRoot
.
position
.
x
-
origin
.
x
;
if
((
Mathf
.
Abs
(
span
)
>
patrolRange
&&
span
*
integer
Dir
>
0
)
||
enemy
.
WallTest
[(
integer
Dir
+
1
)
/
2
]
||
enemy
.
CliffTest
[(
integer
Dir
+
1
)
/
2
]
if
((
Mathf
.
Abs
(
span
)
>
patrolRange
&&
span
*
enemy
.
Move
Dir
>
0
)
||
enemy
.
WallTest
[(
enemy
.
Move
Dir
+
1
)
/
2
]
||
enemy
.
CliffTest
[(
enemy
.
Move
Dir
+
1
)
/
2
]
)
{
enemy
.
ChangeDir
(
integerDir
*
-
1
);
}
enemy
.
ChangeDir
(
enemy
.
MoveDir
*
-
1
);
enemy
.
ChangeVelocityX
(
enemy
.
MoveDir
*
patrolSpeed
);
}
}
// OnStateExit is called when a transition ends and the state machine finishes evaluating this state
...
...
Assets/Scripts/Characters/Enemy/Animator State/EnemyMeleeTrack.cs
View file @
2963b013
...
...
@@ -3,26 +3,28 @@ using System.Collections.Generic;
using
UnityEngine
;
public
class
EnemyMeleeTrack
:
StateMachineBehaviour
{
GameObject
player
;
float
trackSpeed
;
float
attackRange
;
Vector3
leftsideAngle
=
new
Vector3
(
0
,
0
,
0
)
;
Vector3
rightsideAngle
=
new
Vector3
(
0
,
180
,
0
)
;
Transform
pivotTransform
;
float
trackSpeed
;
float
attackRange
;
GameObject
player
;
Transform
animatorRoot
;
Enemy
enemy
;
readonly
int
maxFrame
=
10
;
int
frameCounter
;
int
frameCounter
=
0
;
// 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
)
{
trackSpeed
=
animator
.
GetComponent
<
Enemy
>().
trackSpeed
;
attackRange
=
animator
.
GetComponent
<
Enemy
>().
attackRange
;
// 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
)
{
animatorRoot
=
animator
.
transform
.
parent
;
enemy
=
animator
.
GetComponent
<
Enemy
>()
;
player
=
EnemyManager
.
Instance
.
Player
;
pivotTransform
=
animator
.
transform
.
parent
;
float
halfHeight
=
pivotTransform
.
gameObject
.
GetComponent
<
BoxCollider2D
>().
size
.
y
/
2.0f
;
Vector2
rootPosition2D
=
pivotTransform
.
position
;
frameCounter
=
0
;
}
trackSpeed
=
enemy
.
trackSpeed
;
attackRange
=
enemy
.
attackRange
;
NumeratedDir
trackDir
=
(
animatorRoot
.
position
.
x
-
player
.
transform
.
position
.
x
>
0
)
?
NumeratedDir
.
Left
:
NumeratedDir
.
Right
;
enemy
.
ChangeVelocityX
(
trackSpeed
);
enemy
.
ChangeDir
(
trackDir
);
}
// OnStateUpdate is called on each Update frame between OnStateEnter and OnStateExit callbacks
override
public
void
OnStateUpdate
(
Animator
animator
,
AnimatorStateInfo
stateInfo
,
int
layerIndex
)
{
...
...
@@ -31,17 +33,24 @@ public class EnemyMeleeTrack : StateMachineBehaviour {
animator
.
SetTrigger
(
"AttackTrigger"
);
return
;
}
int
integerDir
=
enemy
.
MoveDir
;
if
(
enemy
.
WallTest
[(
integerDir
+
1
)
/
2
]
||
enemy
.
CliffTest
[(
integerDir
+
1
)
/
2
])
{
enemy
.
ChangeVelocityX
(
0.0f
);
}
else
{
enemy
.
ChangeVelocityX
(
enemy
.
MoveDir
*
trackSpeed
);
}
frameCounter
+=
1
;
if
(
frameCounter
>=
maxFrame
)
{
pivotTransform
.
eulerAngles
=
(
player
.
transform
.
position
.
x
-
pivotTransform
.
position
.
x
<
0
)
?
leftsideAngle
:
rightsideAngle
;
NumeratedDir
trackDir
=
(
animatorRoot
.
position
.
x
-
player
.
transform
.
position
.
x
>
0
)
?
NumeratedDir
.
Left
:
NumeratedDir
.
Right
;
enemy
.
ChangeDir
(
trackDir
);
frameCounter
=
0
;
}
Vector2
currPosition
=
pivotTransform
.
position
;
Vector2
movingDistance
=
pivotTransform
.
right
*
trackSpeed
*
Time
.
deltaTime
*
-
1
;
pivotTransform
.
gameObject
.
GetComponent
<
Rigidbody2D
>().
MovePosition
(
currPosition
+
movingDistance
);
}
// OnStateExit is called when a transition ends and the state machine finishes evaluating this state
...
...
Assets/Scripts/Characters/Enemy/Enemy.cs
View file @
2963b013
...
...
@@ -44,7 +44,7 @@ public class Enemy : MonoBehaviour {
public
bool
[]
WallTest
{
get
;
private
set
;
}
// {left, right}
public
bool
[]
CliffTest
{
get
;
private
set
;
}
// {left, right}
public
NumeratedDir
MoveDir
{
get
;
private
set
;
}
public
int
MoveDir
{
get
;
private
set
;
}
// drop item
private
int
[]
dropTable
;
...
...
@@ -64,7 +64,7 @@ public class Enemy : MonoBehaviour {
private
void
Start
()
{
MoveDir
=
NumeratedDir
.
Left
;
MoveDir
=
(
int
)
NumeratedDir
.
Left
;
currHealth
=
maxHealth
;
Invisible
=
DuringKnockback
=
false
;
dropTable
=
enemyManager
.
DropTableByID
[
monsterID
];
...
...
@@ -146,16 +146,14 @@ public class Enemy : MonoBehaviour {
public
void
ChangeDir
(
NumeratedDir
dir
)
{
MoveDir
=
dir
;
MoveDir
=
(
int
)
dir
;
transform
.
parent
.
eulerAngles
=
(
dir
==
NumeratedDir
.
Left
)
?
new
Vector2
(
0
,
0
)
:
new
Vector2
(
0
,
180
);
ChangeVelocityX
((
int
)
dir
*
Mathf
.
Abs
(
transform
.
parent
.
GetComponent
<
Rigidbody2D
>().
velocity
.
x
));
}
public
void
ChangeDir
(
int
dir
)
{
MoveDir
=
(
NumeratedDir
)
dir
;
MoveDir
=
dir
;
transform
.
parent
.
eulerAngles
=
((
NumeratedDir
)
dir
==
NumeratedDir
.
Left
)
?
new
Vector2
(
0
,
0
)
:
new
Vector2
(
0
,
180
);
ChangeVelocityX
(
dir
*
Mathf
.
Abs
(
transform
.
parent
.
GetComponent
<
Rigidbody2D
>().
velocity
.
x
));
}
// Animation Event
...
...
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