Testing a long-range attack ai

This commit is contained in:
NTG_Lenovo 2023-08-08 16:53:35 +09:00
parent f6d858dfec
commit d72c13e43c
28 changed files with 1928 additions and 558 deletions

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 37315479056e1b34ca5a047b0491c158
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b95744d58e531dc43ac8d0171a731a82
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 23800000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,5 +1,6 @@
using System;
using UnityEngine;
using UnityEngine.AI;
using Random = UnityEngine.Random;
// ReSharper disable once CheckNamespace
@ -10,12 +11,18 @@ namespace BlueWaterProject
{
#region Property and variable
protected bool isAttacking;
protected Animator aiAnimator;
protected AiMover aiMover;
protected FieldOfView fieldOfView;
protected NavMeshAgent navMeshAgent;
protected static readonly int AttackHash = Animator.StringToHash("TakeDamage");
protected static readonly int DamageHash = Animator.StringToHash("TakeDamage");
protected static readonly int DeathHash = Animator.StringToHash("Death");
public static readonly int SpeedHash = Animator.StringToHash("Speed");
public static readonly int AttackHash = Animator.StringToHash("TakeDamage");
public static readonly int DamageHash = Animator.StringToHash("TakeDamage");
public static readonly int DeathTypeHash = Animator.StringToHash("DeathType");
public static readonly int DeathHash = Animator.StringToHash("Death");
#endregion
@ -30,7 +37,9 @@ namespace BlueWaterProject
protected virtual void Awake()
{
aiAnimator = Utils.GetComponentAndAssert<Animator>(transform);
aiMover = Utils.GetComponentAndAssert<AiMover>(transform);
fieldOfView = Utils.GetComponentAndAssert<FieldOfView>(transform);
navMeshAgent = Utils.GetComponentAndAssert<NavMeshAgent>(transform);
}
private void Start()
@ -38,6 +47,11 @@ namespace BlueWaterProject
SetCurrentHp(AiStat.maxHp);
}
private void LateUpdate()
{
Attack();
}
#endregion
#region interface property and function
@ -68,8 +82,13 @@ namespace BlueWaterProject
// 죽었는지 체크
if (changeHp == 0f)
{
var randomValue = Random.Range(0, 2);
aiAnimator.SetInteger(DeathTypeHash, randomValue);
// TODO : 죽었을 때 처리(죽는 애니메이션 이후 사라지는 효과 등)
aiAnimator.SetTrigger(DeathHash);
Invoke(nameof(Destroy), 5f);
return;
}
@ -80,6 +99,11 @@ namespace BlueWaterProject
#region Custom function
private void Destroy() => Destroy(gameObject);
public bool GetIsAttacking() => isAttacking;
public FieldOfView GetFieldOfView() => fieldOfView;
public NavMeshAgent GetNavMeshAgent() => navMeshAgent;
public Animator GetAnimator() => aiAnimator;
public void SetCurrentHp(float value) => AiStat.currentHp = value;
#endregion

View File

@ -0,0 +1,62 @@
using System;
using UnityEngine;
using UnityEngine.AI;
// ReSharper disable once CheckNamespace
namespace BlueWaterProject
{
public class AiMover : MonoBehaviour
{
private enum MoveType
{
NONE, // 미설정
FIXED, // 자리를 지키는 AI
MOVE // 자리를 움직이는 AI
}
#region Property and variable
[SerializeField] private MoveType moveType;
private bool isCommanded;
private Vector3 movePos;
private AiController aiController;
#endregion
#region Unity built-in function
private void Awake()
{
aiController = Utils.GetComponentAndAssert<AiController>(transform);
}
private void LateUpdate()
{
aiController.GetAnimator().SetFloat(AiController.SpeedHash, aiController.GetNavMeshAgent().velocity.normalized.magnitude);
if (isCommanded || aiController.GetIsAttacking())
{
}
else
{
if (!GetTarget() || moveType is MoveType.NONE or MoveType.FIXED) return;
GetNavMeshAgent().SetDestination(GetTarget().position);
}
}
#endregion
#region Custom function
public bool GetIsCommanded() => isCommanded;
private Transform GetTarget() => aiController.GetFieldOfView().GetTargetTransform();
private NavMeshAgent GetNavMeshAgent() => aiController.GetNavMeshAgent();
#endregion
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: b3815b2d4a7cc254e8141b8720fe6738
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,5 +1,6 @@
using System;
using UnityEngine;
using UnityEngine.Serialization;
// ReSharper disable once CheckNamespace
namespace BlueWaterProject
@ -23,7 +24,10 @@ namespace BlueWaterProject
public float moveSpd;
[Tooltip("공격속도(다음 공격 주기)")]
public float atkSpd;
public float atkCooldown;
[Tooltip("공격 사거리")]
public float atkRange;
[Tooltip("캐릭터의 방패 사용 유무")]
public bool usingShield;

View File

@ -45,7 +45,7 @@ namespace BlueWaterProject
Debug.DrawLine(myPos, targetTransform.position, Color.red);
}
#endif
#endif
private void LateUpdate()
{
@ -76,9 +76,11 @@ namespace BlueWaterProject
targetTransform = nearestTargetTransform;
if (targetTransform == null) return;
transform.LookAt(targetTransform);
if (!targetTransform) return;
var targetPos = targetTransform.position;
targetPos.y = transform.position.y;
transform.LookAt(targetPos);
}
#endregion

View File

@ -10,6 +10,7 @@ namespace BlueWaterProject
#region Property and variable
[Header("화살 오브젝트 관리")]
[Tooltip("화살 오브젝트 프리팹")]
[SerializeField] private GameObject arrowPrefab;
[Tooltip("화살 오브젝트 풀링할 최대 갯수")]
@ -17,8 +18,15 @@ namespace BlueWaterProject
[Tooltip("화살 발사 시작 시간")]
[SerializeField] private float shootArrowTime;
[Tooltip("화살 발사 위치")]
[SerializeField] private Transform shootLocation;
[Tooltip("화살 발사 후 오브젝트 저장될 위치")]
[SerializeField] private Transform arrowsPoolLocation;
private Transform arrowsLocation;
private IEnumerator shootArrowCoroutine;
private IObjectPool<Arrow> arrowPool;
#endregion
@ -29,7 +37,11 @@ namespace BlueWaterProject
{
base.Awake();
arrowsLocation = GameObject.Find("ObjectPoolManager/Arrows").transform;
shootArrowTime = AiStat.atkCooldown;
shootLocation = Utils.GetComponentAndAssert<Transform>(transform.
Find("Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 L Clavicle/Bip001 L UpperArm/Bip001 L Forearm/Bip001 L Hand/L_hand_container"));
arrowsPoolLocation = GameObject.Find("ObjectPoolManager/Arrows").transform;
arrowPool = new ObjectPool<Arrow>(CreateArrow, OnGetBullet, OnReleaseBullet, OnDestroyBullet, maxSize:arrowMaxSize);
}
@ -39,17 +51,39 @@ namespace BlueWaterProject
protected override void Attack()
{
StartCoroutine(ShootArrowAnimation());
if (aiMover.GetIsCommanded())
{
if (shootArrowCoroutine == null) return;
StopCoroutine(shootArrowCoroutine);
shootArrowCoroutine = null;
isAttacking = false;
}
else
{
if (shootArrowCoroutine != null || !fieldOfView.GetTargetTransform() ||
AiStat.atkRange < Vector3.Distance(transform.position, fieldOfView.GetTargetTransform().position)) return;
isAttacking = true;
shootArrowCoroutine = ShootArrowAnimation();
StartCoroutine(shootArrowCoroutine);
print("1");
}
}
private IEnumerator ShootArrowAnimation()
{
aiAnimator.SetTrigger(AttackHash);
yield return new WaitForSeconds(shootArrowTime);
while (true)
{
aiAnimator.SetTrigger(AttackHash);
print(shootArrowTime + "초 대기");
yield return new WaitForSeconds(shootArrowTime);
var arrow = arrowPool.Get();
arrow.SetShootingArrow(fieldOfView.GetTargetTransform().position, AiStat, fieldOfView.GetTargetLayer());
StartCoroutine(arrow.Shoot());
var arrow = arrowPool.Get();
arrow.SetShootingArrow(fieldOfView.GetTargetTransform().position, AiStat, fieldOfView.GetTargetLayer());
StartCoroutine(arrow.Shoot());
print("2");
}
}
#endregion
@ -58,7 +92,7 @@ namespace BlueWaterProject
private Arrow CreateArrow()
{
var arrow = Instantiate(arrowPrefab, Vector3.zero, Quaternion.identity, arrowsLocation).GetComponent<Arrow>();
var arrow = Instantiate(arrowPrefab, shootLocation.position, Quaternion.identity, arrowsPoolLocation).GetComponent<Arrow>();
arrow.SetManagedPool(arrowPool);
return arrow;
}

View File

@ -5,7 +5,7 @@ namespace BlueWaterProject
{
protected override void Attack()
{
throw new System.NotImplementedException();
}
}
}

View File

@ -5,7 +5,7 @@ namespace BlueWaterProject
{
protected override void Attack()
{
throw new System.NotImplementedException();
}
}
}

View File

@ -5,7 +5,7 @@ namespace BlueWaterProject
{
protected override void Attack()
{
throw new System.NotImplementedException();
}
}
}

View File

@ -5,7 +5,7 @@ namespace BlueWaterProject
{
protected override void Attack()
{
throw new System.NotImplementedException();
}
}
}

View File

@ -5,7 +5,7 @@ namespace BlueWaterProject
{
protected override void Attack()
{
throw new System.NotImplementedException();
}
}
}

View File

@ -31,7 +31,7 @@ Transform:
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.25, y: 0.5, z: 0.5}
m_LocalScale: {x: 0.125, y: 0.25, z: 0.25}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}

View File

@ -8843,6 +8843,7 @@ GameObject:
- component: {fileID: 7168357575438651213}
- component: {fileID: 7791165217067826530}
- component: {fileID: -9215612320947280157}
- component: {fileID: 7718871607120422351}
- component: {fileID: 7907774551260894579}
m_Layer: 10
m_Name: Archer_E
@ -8861,8 +8862,8 @@ Transform:
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_LocalScale: {x: 0.5, y: 0.5, z: 0.5}
m_ConstrainProportionsScale: 1
m_Children:
- {fileID: 8358902892934034910}
- {fileID: 413610}
@ -8959,12 +8960,12 @@ NavMeshAgent:
m_GameObject: {fileID: 155132}
m_Enabled: 1
m_AgentTypeID: 0
m_Radius: 0.3
m_Radius: 0.25
m_Speed: 3.5
m_Acceleration: 8
avoidancePriority: 50
m_AngularSpeed: 120
m_StoppingDistance: 0
m_StoppingDistance: 1
m_AutoTraverseOffMeshLink: 1
m_AutoBraking: 1
m_AutoRepath: 1
@ -8997,7 +8998,7 @@ Rigidbody:
m_UseGravity: 1
m_IsKinematic: 1
m_Interpolate: 0
m_Constraints: 0
m_Constraints: 80
m_CollisionDetection: 0
--- !u!136 &7791165217067826530
CapsuleCollider:
@ -9039,7 +9040,7 @@ MonoBehaviour:
serializedVersion: 2
m_Bits: 768
viewAngle: 360
viewRadius: 50
viewRadius: 15
colliderWithinRange:
- {fileID: 0}
- {fileID: 0}
@ -9062,6 +9063,19 @@ MonoBehaviour:
- {fileID: 0}
- {fileID: 0}
targetTransform: {fileID: 0}
--- !u!114 &7718871607120422351
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 155132}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b3815b2d4a7cc254e8141b8720fe6738, type: 3}
m_Name:
m_EditorClassIdentifier:
moveType: 1
--- !u!114 &7907774551260894579
MonoBehaviour:
m_ObjectHideFlags: 0
@ -9080,7 +9094,8 @@ MonoBehaviour:
atk: 50
def: 0
moveSpd: 0
atkSpd: 0
atkCooldown: 3
atkRange: 15
usingShield: 0
shieldPenetrationRate: 25
penetrationResistivity: 0
@ -9089,6 +9104,8 @@ MonoBehaviour:
type: 3}
arrowMaxSize: 100
shootArrowTime: 0.2
shootLocation: {fileID: 0}
arrowsPoolLocation: {fileID: 0}
--- !u!1 &156456
GameObject:
m_ObjectHideFlags: 0

View File

@ -8843,6 +8843,7 @@ GameObject:
- component: {fileID: 6873184234425177088}
- component: {fileID: 3683547817894632574}
- component: {fileID: -3917505405678989428}
- component: {fileID: -1311775106345794486}
- component: {fileID: 7182214291447694529}
m_Layer: 10
m_Name: SpearKight_E
@ -8861,8 +8862,8 @@ Transform:
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_LocalScale: {x: 0.5, y: 0.5, z: 0.5}
m_ConstrainProportionsScale: 1
m_Children:
- {fileID: 688715153218578868}
- {fileID: 413610}
@ -8959,16 +8960,16 @@ NavMeshAgent:
m_GameObject: {fileID: 155132}
m_Enabled: 1
m_AgentTypeID: 0
m_Radius: 0.5
m_Radius: 0.25
m_Speed: 3.5
m_Acceleration: 8
avoidancePriority: 50
m_AngularSpeed: 120
m_StoppingDistance: 0
m_StoppingDistance: 1
m_AutoTraverseOffMeshLink: 1
m_AutoBraking: 1
m_AutoRepath: 1
m_Height: 2
m_Height: 1.6
m_BaseOffset: 0
m_WalkableMask: 1
m_ObstacleAvoidanceType: 4
@ -8997,7 +8998,7 @@ Rigidbody:
m_UseGravity: 1
m_IsKinematic: 1
m_Interpolate: 0
m_Constraints: 0
m_Constraints: 80
m_CollisionDetection: 0
--- !u!136 &3683547817894632574
CapsuleCollider:
@ -9039,7 +9040,7 @@ MonoBehaviour:
serializedVersion: 2
m_Bits: 768
viewAngle: 360
viewRadius: 50
viewRadius: 5
colliderWithinRange:
- {fileID: 0}
- {fileID: 0}
@ -9062,6 +9063,19 @@ MonoBehaviour:
- {fileID: 0}
- {fileID: 0}
targetTransform: {fileID: 0}
--- !u!114 &-1311775106345794486
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 155132}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b3815b2d4a7cc254e8141b8720fe6738, type: 3}
m_Name:
m_EditorClassIdentifier:
moveType: 2
--- !u!114 &7182214291447694529
MonoBehaviour:
m_ObjectHideFlags: 0
@ -9080,7 +9094,8 @@ MonoBehaviour:
atk: 40
def: 10
moveSpd: 0
atkSpd: 0
atkCooldown: 2
atkRange: 3
usingShield: 1
shieldPenetrationRate: 75
penetrationResistivity: 0

View File

@ -8843,6 +8843,7 @@ GameObject:
- component: {fileID: 3624658373763787491}
- component: {fileID: 4122610663137176938}
- component: {fileID: -8280972574167639194}
- component: {fileID: -9119350118846133839}
- component: {fileID: 7704073908654393070}
m_Layer: 10
m_Name: Spearman_E
@ -8861,8 +8862,8 @@ Transform:
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_LocalScale: {x: 0.5, y: 0.5, z: 0.5}
m_ConstrainProportionsScale: 1
m_Children:
- {fileID: 5377982392436714879}
- {fileID: 413610}
@ -8959,16 +8960,16 @@ NavMeshAgent:
m_GameObject: {fileID: 155132}
m_Enabled: 1
m_AgentTypeID: 0
m_Radius: 0.5
m_Radius: 0.25
m_Speed: 3.5
m_Acceleration: 8
avoidancePriority: 50
m_AngularSpeed: 120
m_StoppingDistance: 0
m_StoppingDistance: 1
m_AutoTraverseOffMeshLink: 1
m_AutoBraking: 1
m_AutoRepath: 1
m_Height: 2
m_Height: 1.6
m_BaseOffset: 0
m_WalkableMask: 1
m_ObstacleAvoidanceType: 4
@ -8997,7 +8998,7 @@ Rigidbody:
m_UseGravity: 1
m_IsKinematic: 1
m_Interpolate: 0
m_Constraints: 0
m_Constraints: 80
m_CollisionDetection: 0
--- !u!136 &4122610663137176938
CapsuleCollider:
@ -9039,7 +9040,7 @@ MonoBehaviour:
serializedVersion: 2
m_Bits: 768
viewAngle: 360
viewRadius: 50
viewRadius: 5
colliderWithinRange:
- {fileID: 0}
- {fileID: 0}
@ -9062,6 +9063,19 @@ MonoBehaviour:
- {fileID: 0}
- {fileID: 0}
targetTransform: {fileID: 0}
--- !u!114 &-9119350118846133839
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 155132}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b3815b2d4a7cc254e8141b8720fe6738, type: 3}
m_Name:
m_EditorClassIdentifier:
moveType: 2
--- !u!114 &7704073908654393070
MonoBehaviour:
m_ObjectHideFlags: 0
@ -9080,7 +9094,8 @@ MonoBehaviour:
atk: 50
def: 5
moveSpd: 0
atkSpd: 0
atkCooldown: 2
atkRange: 3
usingShield: 0
shieldPenetrationRate: 75
penetrationResistivity: 0

View File

@ -8843,6 +8843,7 @@ GameObject:
- component: {fileID: 1866651242933062860}
- component: {fileID: 1995768815968683845}
- component: {fileID: 8188970957291078347}
- component: {fileID: 6770120175933505588}
- component: {fileID: 6047348452593534959}
m_Layer: 10
m_Name: SwordKnight_E
@ -8861,8 +8862,8 @@ Transform:
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_LocalScale: {x: 0.5, y: 0.5, z: 0.5}
m_ConstrainProportionsScale: 1
m_Children:
- {fileID: 530419259345177510}
- {fileID: 413610}
@ -8959,16 +8960,16 @@ NavMeshAgent:
m_GameObject: {fileID: 155132}
m_Enabled: 1
m_AgentTypeID: 0
m_Radius: 0.5
m_Radius: 0.25
m_Speed: 3.5
m_Acceleration: 8
avoidancePriority: 50
m_AngularSpeed: 120
m_StoppingDistance: 0
m_StoppingDistance: 1
m_AutoTraverseOffMeshLink: 1
m_AutoBraking: 1
m_AutoRepath: 1
m_Height: 2
m_Height: 1.6
m_BaseOffset: 0
m_WalkableMask: 1
m_ObstacleAvoidanceType: 4
@ -8997,7 +8998,7 @@ Rigidbody:
m_UseGravity: 1
m_IsKinematic: 1
m_Interpolate: 0
m_Constraints: 0
m_Constraints: 80
m_CollisionDetection: 0
--- !u!136 &1995768815968683845
CapsuleCollider:
@ -9039,7 +9040,7 @@ MonoBehaviour:
serializedVersion: 2
m_Bits: 768
viewAngle: 360
viewRadius: 50
viewRadius: 3
colliderWithinRange:
- {fileID: 0}
- {fileID: 0}
@ -9062,6 +9063,19 @@ MonoBehaviour:
- {fileID: 0}
- {fileID: 0}
targetTransform: {fileID: 0}
--- !u!114 &6770120175933505588
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 155132}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b3815b2d4a7cc254e8141b8720fe6738, type: 3}
m_Name:
m_EditorClassIdentifier:
moveType: 2
--- !u!114 &6047348452593534959
MonoBehaviour:
m_ObjectHideFlags: 0
@ -9080,7 +9094,8 @@ MonoBehaviour:
atk: 30
def: 10
moveSpd: 0
atkSpd: 0
atkCooldown: 1.5
atkRange: 1.5
usingShield: 1
shieldPenetrationRate: 50
penetrationResistivity: 0

View File

@ -8843,6 +8843,7 @@ GameObject:
- component: {fileID: 5315314452492636260}
- component: {fileID: 4374537182398505653}
- component: {fileID: -240874973628863183}
- component: {fileID: -6091092864301247192}
- component: {fileID: 1001412064052513076}
m_Layer: 10
m_Name: Swordman_E
@ -8861,8 +8862,8 @@ Transform:
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_LocalScale: {x: 0.5, y: 0.5, z: 0.5}
m_ConstrainProportionsScale: 1
m_Children:
- {fileID: 4738425987681673866}
- {fileID: 413610}
@ -8959,16 +8960,16 @@ NavMeshAgent:
m_GameObject: {fileID: 155132}
m_Enabled: 1
m_AgentTypeID: 0
m_Radius: 0.5
m_Radius: 0.25
m_Speed: 3.5
m_Acceleration: 8
avoidancePriority: 50
m_AngularSpeed: 120
m_StoppingDistance: 0
m_StoppingDistance: 1
m_AutoTraverseOffMeshLink: 1
m_AutoBraking: 1
m_AutoRepath: 1
m_Height: 2
m_Height: 1.6
m_BaseOffset: 0
m_WalkableMask: 1
m_ObstacleAvoidanceType: 4
@ -8997,7 +8998,7 @@ Rigidbody:
m_UseGravity: 1
m_IsKinematic: 1
m_Interpolate: 0
m_Constraints: 0
m_Constraints: 80
m_CollisionDetection: 0
--- !u!136 &4374537182398505653
CapsuleCollider:
@ -9039,7 +9040,7 @@ MonoBehaviour:
serializedVersion: 2
m_Bits: 768
viewAngle: 360
viewRadius: 50
viewRadius: 3
colliderWithinRange:
- {fileID: 0}
- {fileID: 0}
@ -9062,6 +9063,19 @@ MonoBehaviour:
- {fileID: 0}
- {fileID: 0}
targetTransform: {fileID: 0}
--- !u!114 &-6091092864301247192
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 155132}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b3815b2d4a7cc254e8141b8720fe6738, type: 3}
m_Name:
m_EditorClassIdentifier:
moveType: 2
--- !u!114 &1001412064052513076
MonoBehaviour:
m_ObjectHideFlags: 0
@ -9080,7 +9094,8 @@ MonoBehaviour:
atk: 35
def: 5
moveSpd: 0
atkSpd: 0
atkCooldown: 1.5
atkRange: 1.5
usingShield: 0
shieldPenetrationRate: 50
penetrationResistivity: 0

View File

@ -8843,6 +8843,7 @@ GameObject:
- component: {fileID: 7512442584761959655}
- component: {fileID: 1485348745952943168}
- component: {fileID: 7637477476578413928}
- component: {fileID: -4856147847642951458}
- component: {fileID: 5368244484501432161}
m_Layer: 9
m_Name: Archer_P
@ -8861,8 +8862,8 @@ Transform:
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_LocalScale: {x: 0.5, y: 0.5, z: 0.5}
m_ConstrainProportionsScale: 1
m_Children:
- {fileID: 2919486955934960903}
- {fileID: 413610}
@ -8959,16 +8960,16 @@ NavMeshAgent:
m_GameObject: {fileID: 155132}
m_Enabled: 1
m_AgentTypeID: 0
m_Radius: 0.5
m_Radius: 0.25
m_Speed: 3.5
m_Acceleration: 8
avoidancePriority: 50
m_AngularSpeed: 120
m_StoppingDistance: 0
m_StoppingDistance: 1
m_AutoTraverseOffMeshLink: 1
m_AutoBraking: 1
m_AutoRepath: 1
m_Height: 2
m_Height: 1.6
m_BaseOffset: 0
m_WalkableMask: 1
m_ObstacleAvoidanceType: 4
@ -8997,7 +8998,7 @@ Rigidbody:
m_UseGravity: 1
m_IsKinematic: 1
m_Interpolate: 0
m_Constraints: 0
m_Constraints: 80
m_CollisionDetection: 0
--- !u!136 &1485348745952943168
CapsuleCollider:
@ -9039,7 +9040,7 @@ MonoBehaviour:
serializedVersion: 2
m_Bits: 1024
viewAngle: 360
viewRadius: 50
viewRadius: 15
colliderWithinRange:
- {fileID: 0}
- {fileID: 0}
@ -9062,6 +9063,19 @@ MonoBehaviour:
- {fileID: 0}
- {fileID: 0}
targetTransform: {fileID: 0}
--- !u!114 &-4856147847642951458
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 155132}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b3815b2d4a7cc254e8141b8720fe6738, type: 3}
m_Name:
m_EditorClassIdentifier:
moveType: 1
--- !u!114 &5368244484501432161
MonoBehaviour:
m_ObjectHideFlags: 0
@ -9080,7 +9094,8 @@ MonoBehaviour:
atk: 50
def: 0
moveSpd: 0
atkSpd: 0
atkCooldown: 3
atkRange: 15
usingShield: 0
shieldPenetrationRate: 25
penetrationResistivity: 0
@ -9089,6 +9104,8 @@ MonoBehaviour:
type: 3}
arrowMaxSize: 100
shootArrowTime: 0.2
shootLocation: {fileID: 0}
arrowsPoolLocation: {fileID: 0}
--- !u!1 &156456
GameObject:
m_ObjectHideFlags: 0

View File

@ -8843,6 +8843,7 @@ GameObject:
- component: {fileID: 2614437605201190422}
- component: {fileID: 2219967035923003510}
- component: {fileID: 1879530881354914857}
- component: {fileID: 7784077776967129375}
- component: {fileID: 6907943215527842660}
m_Layer: 9
m_Name: Axeman_P
@ -8861,8 +8862,8 @@ Transform:
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_LocalScale: {x: 0.5, y: 0.5, z: 0.5}
m_ConstrainProportionsScale: 1
m_Children:
- {fileID: 4791113098303950241}
- {fileID: 413610}
@ -8959,16 +8960,16 @@ NavMeshAgent:
m_GameObject: {fileID: 155132}
m_Enabled: 1
m_AgentTypeID: 0
m_Radius: 0.5
m_Radius: 0.25
m_Speed: 3.5
m_Acceleration: 8
avoidancePriority: 50
m_AngularSpeed: 120
m_StoppingDistance: 0
m_StoppingDistance: 1
m_AutoTraverseOffMeshLink: 1
m_AutoBraking: 1
m_AutoRepath: 1
m_Height: 2
m_Height: 1.6
m_BaseOffset: 0
m_WalkableMask: 1
m_ObstacleAvoidanceType: 4
@ -8997,7 +8998,7 @@ Rigidbody:
m_UseGravity: 1
m_IsKinematic: 1
m_Interpolate: 0
m_Constraints: 0
m_Constraints: 80
m_CollisionDetection: 0
--- !u!136 &2219967035923003510
CapsuleCollider:
@ -9039,7 +9040,7 @@ MonoBehaviour:
serializedVersion: 2
m_Bits: 1024
viewAngle: 360
viewRadius: 50
viewRadius: 5
colliderWithinRange:
- {fileID: 0}
- {fileID: 0}
@ -9062,6 +9063,19 @@ MonoBehaviour:
- {fileID: 0}
- {fileID: 0}
targetTransform: {fileID: 0}
--- !u!114 &7784077776967129375
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 155132}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b3815b2d4a7cc254e8141b8720fe6738, type: 3}
m_Name:
m_EditorClassIdentifier:
moveType: 2
--- !u!114 &6907943215527842660
MonoBehaviour:
m_ObjectHideFlags: 0
@ -9080,7 +9094,8 @@ MonoBehaviour:
atk: 50
def: 0
moveSpd: 0
atkSpd: 0
atkCooldown: 2
atkRange: 3
usingShield: 0
shieldPenetrationRate: 100
penetrationResistivity: 0

View File

@ -8843,6 +8843,7 @@ GameObject:
- component: {fileID: 8718300241156730733}
- component: {fileID: 13124744015303705}
- component: {fileID: -836644672241485533}
- component: {fileID: 7794032711994907147}
- component: {fileID: 5358608732463309424}
m_Layer: 9
m_Name: Spearman_P
@ -8861,8 +8862,8 @@ Transform:
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_LocalScale: {x: 0.5, y: 0.5, z: 0.5}
m_ConstrainProportionsScale: 1
m_Children:
- {fileID: 645799968535820937}
- {fileID: 413610}
@ -8959,16 +8960,16 @@ NavMeshAgent:
m_GameObject: {fileID: 155132}
m_Enabled: 1
m_AgentTypeID: 0
m_Radius: 0.5
m_Radius: 0.25
m_Speed: 3.5
m_Acceleration: 8
avoidancePriority: 50
m_AngularSpeed: 120
m_StoppingDistance: 0
m_StoppingDistance: 1
m_AutoTraverseOffMeshLink: 1
m_AutoBraking: 1
m_AutoRepath: 1
m_Height: 2
m_Height: 1.6
m_BaseOffset: 0
m_WalkableMask: 1
m_ObstacleAvoidanceType: 4
@ -8997,7 +8998,7 @@ Rigidbody:
m_UseGravity: 1
m_IsKinematic: 1
m_Interpolate: 0
m_Constraints: 0
m_Constraints: 80
m_CollisionDetection: 0
--- !u!136 &13124744015303705
CapsuleCollider:
@ -9039,7 +9040,7 @@ MonoBehaviour:
serializedVersion: 2
m_Bits: 1024
viewAngle: 360
viewRadius: 50
viewRadius: 5
colliderWithinRange:
- {fileID: 0}
- {fileID: 0}
@ -9062,6 +9063,19 @@ MonoBehaviour:
- {fileID: 0}
- {fileID: 0}
targetTransform: {fileID: 0}
--- !u!114 &7794032711994907147
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 155132}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b3815b2d4a7cc254e8141b8720fe6738, type: 3}
m_Name:
m_EditorClassIdentifier:
moveType: 2
--- !u!114 &5358608732463309424
MonoBehaviour:
m_ObjectHideFlags: 0
@ -9080,7 +9094,8 @@ MonoBehaviour:
atk: 50
def: 5
moveSpd: 0
atkSpd: 0
atkCooldown: 2
atkRange: 3
usingShield: 0
shieldPenetrationRate: 75
penetrationResistivity: 0

View File

@ -8843,6 +8843,7 @@ GameObject:
- component: {fileID: 4974866494169781262}
- component: {fileID: 9121247047284190495}
- component: {fileID: -8553620294219021237}
- component: {fileID: -5759407904415877482}
- component: {fileID: 577732947051587098}
m_Layer: 9
m_Name: SwordKnight_P
@ -8861,8 +8862,8 @@ Transform:
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_LocalScale: {x: 0.5, y: 0.5, z: 0.5}
m_ConstrainProportionsScale: 1
m_Children:
- {fileID: 8704968101649663153}
- {fileID: 413610}
@ -8959,16 +8960,16 @@ NavMeshAgent:
m_GameObject: {fileID: 155132}
m_Enabled: 1
m_AgentTypeID: 0
m_Radius: 0.5
m_Radius: 0.25
m_Speed: 3.5
m_Acceleration: 8
avoidancePriority: 50
m_AngularSpeed: 120
m_StoppingDistance: 0
m_StoppingDistance: 1
m_AutoTraverseOffMeshLink: 1
m_AutoBraking: 1
m_AutoRepath: 1
m_Height: 2
m_Height: 1.6
m_BaseOffset: 0
m_WalkableMask: 1
m_ObstacleAvoidanceType: 4
@ -8997,7 +8998,7 @@ Rigidbody:
m_UseGravity: 1
m_IsKinematic: 1
m_Interpolate: 0
m_Constraints: 0
m_Constraints: 80
m_CollisionDetection: 0
--- !u!136 &9121247047284190495
CapsuleCollider:
@ -9039,7 +9040,7 @@ MonoBehaviour:
serializedVersion: 2
m_Bits: 1024
viewAngle: 360
viewRadius: 50
viewRadius: 3
colliderWithinRange:
- {fileID: 0}
- {fileID: 0}
@ -9062,6 +9063,19 @@ MonoBehaviour:
- {fileID: 0}
- {fileID: 0}
targetTransform: {fileID: 0}
--- !u!114 &-5759407904415877482
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 155132}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b3815b2d4a7cc254e8141b8720fe6738, type: 3}
m_Name:
m_EditorClassIdentifier:
moveType: 2
--- !u!114 &577732947051587098
MonoBehaviour:
m_ObjectHideFlags: 0
@ -9080,7 +9094,8 @@ MonoBehaviour:
atk: 30
def: 10
moveSpd: 0
atkSpd: 0
atkCooldown: 1.5
atkRange: 1.5
usingShield: 1
shieldPenetrationRate: 50
penetrationResistivity: 0

View File

@ -8843,6 +8843,7 @@ GameObject:
- component: {fileID: 4344432134670323988}
- component: {fileID: 6882424985411624636}
- component: {fileID: -1501104226175991063}
- component: {fileID: 2583839811861868434}
- component: {fileID: 1136834195750313725}
m_Layer: 9
m_Name: Swordman_P
@ -8861,8 +8862,8 @@ Transform:
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_LocalScale: {x: 0.5, y: 0.5, z: 0.5}
m_ConstrainProportionsScale: 1
m_Children:
- {fileID: 141002451771819996}
- {fileID: 413610}
@ -8959,16 +8960,16 @@ NavMeshAgent:
m_GameObject: {fileID: 155132}
m_Enabled: 1
m_AgentTypeID: 0
m_Radius: 0.5
m_Radius: 0.25
m_Speed: 3.5
m_Acceleration: 8
avoidancePriority: 50
m_AngularSpeed: 120
m_StoppingDistance: 0
m_StoppingDistance: 1
m_AutoTraverseOffMeshLink: 1
m_AutoBraking: 1
m_AutoRepath: 1
m_Height: 2
m_Height: 1.6
m_BaseOffset: 0
m_WalkableMask: 1
m_ObstacleAvoidanceType: 4
@ -8997,7 +8998,7 @@ Rigidbody:
m_UseGravity: 1
m_IsKinematic: 1
m_Interpolate: 0
m_Constraints: 0
m_Constraints: 80
m_CollisionDetection: 0
--- !u!136 &6882424985411624636
CapsuleCollider:
@ -9039,7 +9040,7 @@ MonoBehaviour:
serializedVersion: 2
m_Bits: 1024
viewAngle: 360
viewRadius: 50
viewRadius: 3
colliderWithinRange:
- {fileID: 0}
- {fileID: 0}
@ -9062,6 +9063,19 @@ MonoBehaviour:
- {fileID: 0}
- {fileID: 0}
targetTransform: {fileID: 0}
--- !u!114 &2583839811861868434
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 155132}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b3815b2d4a7cc254e8141b8720fe6738, type: 3}
m_Name:
m_EditorClassIdentifier:
moveType: 2
--- !u!114 &1136834195750313725
MonoBehaviour:
m_ObjectHideFlags: 0
@ -9080,7 +9094,8 @@ MonoBehaviour:
atk: 35
def: 5
moveSpd: 0
atkSpd: 0
atkCooldown: 1.5
atkRange: 1.5
usingShield: 0
shieldPenetrationRate: 50
penetrationResistivity: 0

View File

@ -71,12 +71,12 @@ NavMeshProjectSettings:
cost: 1
m_LastAgentTypeID: -887442657
m_Settings:
- serializedVersion: 2
- serializedVersion: 3
agentTypeID: 0
agentRadius: 0.5
agentRadius: 0.25
agentHeight: 2
agentSlope: 45
agentClimb: 0.75
agentClimb: 0.45
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
minRegionArea: 2
@ -84,8 +84,10 @@ NavMeshProjectSettings:
cellSize: 0.16666667
manualTileSize: 0
tileSize: 256
accuratePlacement: 0
buildHeightMesh: 0
maxJobWorkers: 0
preserveTilesOutsideBounds: 0
debug:
m_Flags: 0
m_SettingNames:
- Humanoid
- Pirate

View File

@ -3,7 +3,10 @@
--- !u!78 &1
TagManager:
serializedVersion: 2
tags: []
tags:
- Ship
- Ground
- Stair
layers:
- Default
- TransparentFX