Added EnemyDamagedState
Something broke -- added gaurd
This commit is contained in:
parent
51a8f54192
commit
4be7c0df38
@ -1,5 +1,92 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &4203408371334536830
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1693662441197515017}
|
||||
- component: {fileID: 5093925305183066901}
|
||||
m_Layer: 0
|
||||
m_Name: Shadow
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &1693662441197515017
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4203408371334536830}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: -0.715, z: 0}
|
||||
m_LocalScale: {x: 0.90277, y: 0.4705689, z: 0.90277}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 243343966221896818}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!212 &5093925305183066901
|
||||
SpriteRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4203408371334536830}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 0
|
||||
m_ReceiveShadows: 0
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 0
|
||||
m_RayTraceProcedural: 0
|
||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||
m_RayTracingAccelStructBuildFlags: 1
|
||||
m_SmallMeshCulling: 1
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 0
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 651355007
|
||||
m_SortingLayer: 4
|
||||
m_SortingOrder: -1
|
||||
m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3}
|
||||
m_Color: {r: 0, g: 0, b: 0, a: 0.5176471}
|
||||
m_FlipX: 0
|
||||
m_FlipY: 0
|
||||
m_DrawMode: 0
|
||||
m_Size: {x: 1, y: 1}
|
||||
m_AdaptiveModeThreshold: 0.5
|
||||
m_SpriteTileMode: 0
|
||||
m_WasSpriteAssigned: 1
|
||||
m_MaskInteraction: 0
|
||||
m_SpriteSortPoint: 0
|
||||
--- !u!1 &5621972084801698921
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -10,8 +97,6 @@ GameObject:
|
||||
m_Component:
|
||||
- component: {fileID: 2045680922754072471}
|
||||
- component: {fileID: 1180914023357243997}
|
||||
- component: {fileID: 2963831140919592460}
|
||||
- component: {fileID: 3688493226208381882}
|
||||
m_Layer: 0
|
||||
m_Name: Capsule
|
||||
m_TagString: Untagged
|
||||
@ -28,8 +113,8 @@ Transform:
|
||||
m_GameObject: {fileID: 5621972084801698921}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0.75, y: 0.75, z: 1}
|
||||
m_LocalPosition: {x: 0, y: -0.1984, z: 0}
|
||||
m_LocalScale: {x: 0.62654996, y: 0.55155003, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 243343966221896818}
|
||||
@ -89,13 +174,66 @@ SpriteRenderer:
|
||||
m_WasSpriteAssigned: 1
|
||||
m_MaskInteraction: 0
|
||||
m_SpriteSortPoint: 0
|
||||
--- !u!70 &2963831140919592460
|
||||
--- !u!1 &6411951171763069002
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 243343966221896818}
|
||||
- component: {fileID: 4923938647755769837}
|
||||
- component: {fileID: 3140493390153182690}
|
||||
- component: {fileID: 9193586887117248369}
|
||||
m_Layer: 0
|
||||
m_Name: Gobler
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &243343966221896818
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6411951171763069002}
|
||||
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_Children:
|
||||
- {fileID: 2045680922754072471}
|
||||
- {fileID: 1693662441197515017}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &4923938647755769837
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6411951171763069002}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: a5c89455bac58d943a2e1e110d37a24d, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
WalkState: {fileID: 11400000, guid: 5cd5bb6e94e95cf4c961f0433390f59f, type: 2}
|
||||
ChaseState: {fileID: 11400000, guid: 71a5afe255167e14cad7bb413bdef532, type: 2}
|
||||
AttackState: {fileID: 11400000, guid: 0b9cc3e63ee0125479639c05b89977f8, type: 2}
|
||||
ChaseDistance: 7
|
||||
AttackDistance: 1
|
||||
--- !u!70 &3140493390153182690
|
||||
CapsuleCollider2D:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5621972084801698921}
|
||||
m_GameObject: {fileID: 6411951171763069002}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_Density: 1
|
||||
@ -123,24 +261,24 @@ CapsuleCollider2D:
|
||||
m_UsedByEffector: 0
|
||||
m_CompositeOperation: 0
|
||||
m_CompositeOrder: 0
|
||||
m_Offset: {x: 0.0000014055772, y: -0.87583154}
|
||||
m_Size: {x: 0.7845726, y: 0.36333472}
|
||||
m_Offset: {x: -0.00000006812225, y: -0.5714509}
|
||||
m_Size: {x: 0.8074399, y: 0.49523765}
|
||||
m_Direction: 1
|
||||
--- !u!50 &3688493226208381882
|
||||
--- !u!50 &9193586887117248369
|
||||
Rigidbody2D:
|
||||
serializedVersion: 5
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5621972084801698921}
|
||||
m_GameObject: {fileID: 6411951171763069002}
|
||||
m_BodyType: 0
|
||||
m_Simulated: 1
|
||||
m_UseFullKinematicContacts: 0
|
||||
m_UseAutoMass: 0
|
||||
m_Mass: 1
|
||||
m_LinearDamping: 0
|
||||
m_AngularDamping: 0.05
|
||||
m_LinearDamping: 5
|
||||
m_AngularDamping: 1
|
||||
m_GravityScale: 0
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
@ -148,58 +286,8 @@ Rigidbody2D:
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_Interpolate: 1
|
||||
m_Bits: 0
|
||||
m_Interpolate: 0
|
||||
m_SleepingMode: 1
|
||||
m_CollisionDetection: 0
|
||||
m_Constraints: 0
|
||||
--- !u!1 &6411951171763069002
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 243343966221896818}
|
||||
- component: {fileID: 4923938647755769837}
|
||||
m_Layer: 0
|
||||
m_Name: Gobler
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &243343966221896818
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6411951171763069002}
|
||||
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_Children:
|
||||
- {fileID: 2045680922754072471}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &4923938647755769837
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6411951171763069002}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: a5c89455bac58d943a2e1e110d37a24d, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
WalkState: {fileID: 11400000, guid: 5cd5bb6e94e95cf4c961f0433390f59f, type: 2}
|
||||
ChaseState: {fileID: 11400000, guid: 71a5afe255167e14cad7bb413bdef532, type: 2}
|
||||
AttackState: {fileID: 11400000, guid: 0b9cc3e63ee0125479639c05b89977f8, type: 2}
|
||||
ChaseDistance: 10
|
||||
AttackDistance: 1
|
||||
m_CollisionDetection: 1
|
||||
m_Constraints: 4
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,3 +1,4 @@
|
||||
using System;
|
||||
using Unity.IO.LowLevel.Unsafe;
|
||||
using UnityEngine;
|
||||
|
||||
@ -25,6 +26,11 @@ namespace AI.Base {
|
||||
Owner = ownerTransform;
|
||||
}
|
||||
|
||||
virtual public StateNode InitializeCopy(Transform ownerTransform) {
|
||||
Owner = ownerTransform;
|
||||
return ScriptableObject.CreateInstance(this.GetType()) as StateNode;
|
||||
}
|
||||
|
||||
virtual public void Start() {}
|
||||
virtual public void Stop() {}
|
||||
virtual public void Tick() {}
|
||||
|
||||
@ -8,6 +8,13 @@ using UnityEngine;
|
||||
|
||||
private Transform Player;
|
||||
|
||||
override public StateNode InitializeCopy(Transform ownerTransform) {
|
||||
var copy = ScriptableObject.CreateInstance(this.GetType()) as EnemyChaseState;
|
||||
copy.Owner = ownerTransform;
|
||||
copy.Speed = Speed;
|
||||
return copy;
|
||||
}
|
||||
|
||||
override public void Start() {
|
||||
Player = GameObject.FindGameObjectWithTag("Player").transform;
|
||||
Debug.Log("Entering Chase");
|
||||
|
||||
10
Assets/Scripts/Runtime/AI/StateMachines/EnemyDamagedState.cs
Normal file
10
Assets/Scripts/Runtime/AI/StateMachines/EnemyDamagedState.cs
Normal file
@ -0,0 +1,10 @@
|
||||
using AI.Base;
|
||||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
[CreateAssetMenu(menuName = "AI/Enemy/EnemyDamagedState")]
|
||||
public class EnemyDamagedState : StateNode {
|
||||
override public void Start() { Debug.Log("Entering Idle"); }
|
||||
override public void Tick() { }
|
||||
override public void Stop() { Debug.Log("Exiting Idle"); }
|
||||
}
|
||||
@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7457688d54e7e8342b034cc3b7fd589e
|
||||
@ -1,4 +1,5 @@
|
||||
using AI.Base;
|
||||
using UnityEditor.Experimental.GraphView;
|
||||
using UnityEngine;
|
||||
using static TMPro.SpriteAssetUtilities.TexturePacker_JsonArray;
|
||||
|
||||
@ -7,6 +8,7 @@ using static TMPro.SpriteAssetUtilities.TexturePacker_JsonArray;
|
||||
[SerializeField] public StateNode WalkState;
|
||||
[SerializeField] public StateNode ChaseState;
|
||||
[SerializeField] public StateNode AttackState;
|
||||
[SerializeField] public StateNode DamagedState;
|
||||
|
||||
[Header("Attributes")]
|
||||
[SerializeField] private float ChaseDistance = 10f;
|
||||
@ -14,15 +16,27 @@ using static TMPro.SpriteAssetUtilities.TexturePacker_JsonArray;
|
||||
|
||||
private Transform Player;
|
||||
|
||||
|
||||
protected void Start() {
|
||||
Player = GameObject.FindGameObjectWithTag("Player")?.transform;
|
||||
WalkState.Initialize(this.transform);
|
||||
ChaseState.Initialize(this.transform);
|
||||
WalkState = ScriptableObject.CreateInstance(WalkState.GetType()) as StateNode;
|
||||
|
||||
WalkState = WalkState.InitializeCopy(this.transform);
|
||||
ChaseState = ChaseState.InitializeCopy(this.transform);
|
||||
//DamagedState = DamagedState.InitializeCopy(this.transform);
|
||||
AttackState = AttackState.InitializeCopy(this.transform);
|
||||
|
||||
AttackState.Initialize(this.transform);
|
||||
|
||||
CurrentState = WalkState;
|
||||
CurrentState.Start();
|
||||
}
|
||||
|
||||
protected void InitializeStateNode(StateNode node){
|
||||
node = ScriptableObject.CreateInstance(node.GetType()) as StateNode;
|
||||
node.Initialize(this.transform);
|
||||
}
|
||||
|
||||
override protected IState GetNextState() {
|
||||
if (Player == null)
|
||||
return CurrentState;
|
||||
@ -36,11 +50,16 @@ using static TMPro.SpriteAssetUtilities.TexturePacker_JsonArray;
|
||||
return WalkState.GetNextState();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private void OnDrawGizmos() {
|
||||
DrawChaseDistance();
|
||||
DrawAttackDistance();
|
||||
}
|
||||
|
||||
private void DrawChaseDistance() {
|
||||
Gizmos.color = CurrentState == (IState)ChaseState ? Color.yellow : Color.green;
|
||||
Vector2 center = this.transform.position;
|
||||
|
||||
@ -55,7 +55,7 @@ public class BuilderManager : MonoBehaviour {
|
||||
|
||||
public void SetBuildMode(bool on) {
|
||||
BuildMode = on;
|
||||
PreviewObj.SetActive(on);
|
||||
PreviewObj?.SetActive(on);
|
||||
}
|
||||
|
||||
void PlaceObject() {
|
||||
|
||||
23
Assets/Scripts/Runtime/GameManagement/SpawnManager.cs
Normal file
23
Assets/Scripts/Runtime/GameManagement/SpawnManager.cs
Normal file
@ -0,0 +1,23 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using UnityEngine;
|
||||
|
||||
public class SpawnManager : MonoBehaviour {
|
||||
public static bool IsPaused { get; private set; }
|
||||
[SerializeField] private GameObject pauseMenuUI;
|
||||
|
||||
void Update() {
|
||||
if (Input.GetKeyDown(KeyCode.Escape))
|
||||
TogglePause();
|
||||
}
|
||||
|
||||
public void TogglePause() {
|
||||
IsPaused = !IsPaused;
|
||||
Time.timeScale = IsPaused ? 0f : 1f;
|
||||
AudioListener.pause = IsPaused;
|
||||
pauseMenuUI.SetActive(IsPaused);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 297bf7fd6271a174194f3ff9950eb487
|
||||
Loading…
Reference in New Issue
Block a user