update
This commit is contained in:
6
.idea/.idea.HALLUCINATE/.idea/workspace.xml
generated
6
.idea/.idea.HALLUCINATE/.idea/workspace.xml
generated
@@ -6,11 +6,9 @@
|
|||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="f9183c68-daf0-43b8-be4c-fad79983f91b" name="Changes" comment="">
|
<list default="true" id="f9183c68-daf0-43b8-be4c-fad79983f91b" name="Changes" comment="">
|
||||||
<change beforePath="$PROJECT_DIR$/.idea/.idea.HALLUCINATE/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/.idea.HALLUCINATE/.idea/workspace.xml" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/.idea/.idea.HALLUCINATE/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/.idea.HALLUCINATE/.idea/workspace.xml" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/Assets/Models/Character/Characters/Invector@V-Bot/FBX/Materials/V-bot-texture.mat" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Models/Character/Characters/Invector@V-Bot/FBX/Materials/V-bot-texture.mat" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/Assets/Fonts/BitcountSingleInk-VariableFont_CRSV,ELSH,ELXP,SZP1,SZP2,XPN1,XPN2,YPN1,YPN2,slnt,wght SDF.asset" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Fonts/BitcountSingleInk-VariableFont_CRSV,ELSH,ELXP,SZP1,SZP2,XPN1,XPN2,YPN1,YPN2,slnt,wght SDF.asset" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/Assets/Prefabs/NPC/xNPC.prefab" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Prefabs/NPC/xNPC.prefab" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/Assets/Prefabs/NPC/xNPC.prefab" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Prefabs/NPC/xNPC.prefab" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/Assets/Scenes/Cho môn AI/Only AI.unity" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scenes/Cho môn AI/Only AI.unity" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/Assets/Scripts/AI NPC/EnemyAI.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/AI NPC/EnemyAI.cs" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/Assets/Scripts/AI NPC/EnemyAI.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/AI NPC/EnemyAI.cs" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/Assets/Scripts/AI NPC/GerminiNPC.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/AI NPC/GerminiNPC.cs" afterDir="false" />
|
|
||||||
</list>
|
</list>
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
@@ -180,7 +178,7 @@
|
|||||||
<workItem from="1780364354282" duration="4357000" />
|
<workItem from="1780364354282" duration="4357000" />
|
||||||
<workItem from="1780409218377" duration="9852000" />
|
<workItem from="1780409218377" duration="9852000" />
|
||||||
<workItem from="1780494322686" duration="643000" />
|
<workItem from="1780494322686" duration="643000" />
|
||||||
<workItem from="1780633654231" duration="4405000" />
|
<workItem from="1780633654231" duration="7070000" />
|
||||||
</task>
|
</task>
|
||||||
<servers />
|
<servers />
|
||||||
</component>
|
</component>
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,196 @@
|
|||||||
%YAML 1.1
|
%YAML 1.1
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &687530158533285018
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 6775114823217050358}
|
||||||
|
- component: {fileID: 4848796683983860819}
|
||||||
|
- component: {fileID: 1063752242239153259}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: Image
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &6775114823217050358
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 687530158533285018}
|
||||||
|
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: []
|
||||||
|
m_Father: {fileID: 328772590547044964}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||||
|
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 1.5, y: 0.5}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &4848796683983860819
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 687530158533285018}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &1063752242239153259
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 687530158533285018}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Sprite: {fileID: 21300000, guid: 65afb4cbeb47dc14ea879b97a296e19f, type: 3}
|
||||||
|
m_Type: 0
|
||||||
|
m_PreserveAspect: 0
|
||||||
|
m_FillCenter: 1
|
||||||
|
m_FillMethod: 4
|
||||||
|
m_FillAmount: 1
|
||||||
|
m_FillClockwise: 1
|
||||||
|
m_FillOrigin: 0
|
||||||
|
m_UseSpriteMesh: 0
|
||||||
|
m_PixelsPerUnitMultiplier: 1
|
||||||
|
--- !u!1 &3381350595760429543
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 328772590547044964}
|
||||||
|
- component: {fileID: 1591845008547969437}
|
||||||
|
- component: {fileID: 7721795325225879236}
|
||||||
|
- component: {fileID: 1194338186308686302}
|
||||||
|
- component: {fileID: 1620994605374968907}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: Canvas
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &328772590547044964
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3381350595760429543}
|
||||||
|
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: 6775114823217050358}
|
||||||
|
- {fileID: 2685789783496722106}
|
||||||
|
m_Father: {fileID: 6442306242859885696}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 2.09}
|
||||||
|
m_SizeDelta: {x: 1.5, y: 0.5}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!223 &1591845008547969437
|
||||||
|
Canvas:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3381350595760429543}
|
||||||
|
m_Enabled: 1
|
||||||
|
serializedVersion: 3
|
||||||
|
m_RenderMode: 2
|
||||||
|
m_Camera: {fileID: 0}
|
||||||
|
m_PlaneDistance: 100
|
||||||
|
m_PixelPerfect: 0
|
||||||
|
m_ReceivesEvents: 1
|
||||||
|
m_OverrideSorting: 0
|
||||||
|
m_OverridePixelPerfect: 0
|
||||||
|
m_SortingBucketNormalizedSize: 0
|
||||||
|
m_VertexColorAlwaysGammaSpace: 0
|
||||||
|
m_AdditionalShaderChannelsFlag: 25
|
||||||
|
m_UpdateRectTransformForStandalone: 0
|
||||||
|
m_SortingLayerID: 0
|
||||||
|
m_SortingOrder: 0
|
||||||
|
m_TargetDisplay: 0
|
||||||
|
--- !u!114 &7721795325225879236
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3381350595760429543}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.CanvasScaler
|
||||||
|
m_UiScaleMode: 0
|
||||||
|
m_ReferencePixelsPerUnit: 100
|
||||||
|
m_ScaleFactor: 1
|
||||||
|
m_ReferenceResolution: {x: 800, y: 600}
|
||||||
|
m_ScreenMatchMode: 0
|
||||||
|
m_MatchWidthOrHeight: 0
|
||||||
|
m_PhysicalUnit: 3
|
||||||
|
m_FallbackScreenDPI: 96
|
||||||
|
m_DefaultSpriteDPI: 96
|
||||||
|
m_DynamicPixelsPerUnit: 1
|
||||||
|
m_PresetInfoIsWorld: 1
|
||||||
|
--- !u!114 &1194338186308686302
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3381350595760429543}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.GraphicRaycaster
|
||||||
|
m_IgnoreReversedGraphics: 1
|
||||||
|
m_BlockingObjects: 0
|
||||||
|
m_BlockingMask:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
--- !u!225 &1620994605374968907
|
||||||
|
CanvasGroup:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3381350595760429543}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_Alpha: 1
|
||||||
|
m_Interactable: 1
|
||||||
|
m_BlocksRaycasts: 1
|
||||||
|
m_IgnoreParentGroups: 0
|
||||||
--- !u!1 &5687887011233860168
|
--- !u!1 &5687887011233860168
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -112,6 +303,143 @@ BoxCollider:
|
|||||||
serializedVersion: 3
|
serializedVersion: 3
|
||||||
m_Size: {x: 1, y: 1, z: 1}
|
m_Size: {x: 1, y: 1, z: 1}
|
||||||
m_Center: {x: 0, y: 0, z: 0}
|
m_Center: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &6192986059782212342
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 2685789783496722106}
|
||||||
|
- component: {fileID: 6402235304255896193}
|
||||||
|
- component: {fileID: 4454520411962799200}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: Text (TMP)
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &2685789783496722106
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6192986059782212342}
|
||||||
|
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: []
|
||||||
|
m_Father: {fileID: 328772590547044964}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||||
|
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 1.5, y: 0.5}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &6402235304255896193
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6192986059782212342}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &4454520411962799200
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6192986059782212342}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_text: New Text
|
||||||
|
m_isRightToLeft: 0
|
||||||
|
m_fontAsset: {fileID: 11400000, guid: 640dff215c25f9847adcab3173c9a02e, type: 2}
|
||||||
|
m_sharedMaterial: {fileID: -4956435542685485637, guid: 640dff215c25f9847adcab3173c9a02e, type: 2}
|
||||||
|
m_fontSharedMaterials: []
|
||||||
|
m_fontMaterial: {fileID: 0}
|
||||||
|
m_fontMaterials: []
|
||||||
|
m_fontColor32:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4294967295
|
||||||
|
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_enableVertexGradient: 0
|
||||||
|
m_colorMode: 3
|
||||||
|
m_fontColorGradient:
|
||||||
|
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
topRight: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_fontColorGradientPreset: {fileID: 0}
|
||||||
|
m_spriteAsset: {fileID: 0}
|
||||||
|
m_tintAllSprites: 0
|
||||||
|
m_StyleSheet: {fileID: 0}
|
||||||
|
m_TextStyleHashCode: -1183493901
|
||||||
|
m_overrideHtmlColors: 0
|
||||||
|
m_faceColor:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4294967295
|
||||||
|
m_fontSize: 0.07
|
||||||
|
m_fontSizeBase: 0.07
|
||||||
|
m_fontWeight: 400
|
||||||
|
m_enableAutoSizing: 0
|
||||||
|
m_fontSizeMin: 18
|
||||||
|
m_fontSizeMax: 72
|
||||||
|
m_fontStyle: 0
|
||||||
|
m_HorizontalAlignment: 1
|
||||||
|
m_VerticalAlignment: 256
|
||||||
|
m_textAlignment: 65535
|
||||||
|
m_characterSpacing: 0
|
||||||
|
m_characterHorizontalScale: 1
|
||||||
|
m_wordSpacing: 0
|
||||||
|
m_lineSpacing: 0
|
||||||
|
m_lineSpacingMax: 0
|
||||||
|
m_paragraphSpacing: 0
|
||||||
|
m_charWidthMaxAdj: 0
|
||||||
|
m_TextWrappingMode: 1
|
||||||
|
m_wordWrappingRatios: 0.4
|
||||||
|
m_overflowMode: 0
|
||||||
|
m_linkedTextComponent: {fileID: 0}
|
||||||
|
parentLinkedComponent: {fileID: 0}
|
||||||
|
m_enableKerning: 0
|
||||||
|
m_ActiveFontFeatures: 6e72656b
|
||||||
|
m_enableExtraPadding: 0
|
||||||
|
checkPaddingRequired: 0
|
||||||
|
m_isRichText: 1
|
||||||
|
m_EmojiFallbackSupport: 1
|
||||||
|
m_parseCtrlCharacters: 1
|
||||||
|
m_isOrthographic: 1
|
||||||
|
m_isCullingEnabled: 0
|
||||||
|
m_horizontalMapping: 0
|
||||||
|
m_verticalMapping: 0
|
||||||
|
m_uvLineOffset: 0
|
||||||
|
m_geometrySortingOrder: 0
|
||||||
|
m_IsTextObjectScaleStatic: 0
|
||||||
|
m_VertexBufferAutoSizeReduction: 0
|
||||||
|
m_useMaxVisibleDescender: 1
|
||||||
|
m_pageToDisplay: 1
|
||||||
|
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_isUsingLegacyAnimationComponent: 0
|
||||||
|
m_isVolumetricText: 0
|
||||||
|
m_hasFontAssetChanged: 0
|
||||||
|
m_baseMaterial: {fileID: 0}
|
||||||
|
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||||
--- !u!1 &7522161431095319480
|
--- !u!1 &7522161431095319480
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -124,6 +452,7 @@ GameObject:
|
|||||||
- component: {fileID: 8272839718325411334}
|
- component: {fileID: 8272839718325411334}
|
||||||
- component: {fileID: 5770331367975928816}
|
- component: {fileID: 5770331367975928816}
|
||||||
- component: {fileID: 4112854993683970537}
|
- component: {fileID: 4112854993683970537}
|
||||||
|
- component: {fileID: 3240800621832008763}
|
||||||
m_Layer: 0
|
m_Layer: 0
|
||||||
m_Name: xNPC
|
m_Name: xNPC
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
@@ -146,6 +475,7 @@ Transform:
|
|||||||
m_Children:
|
m_Children:
|
||||||
- {fileID: 5863061020199015852}
|
- {fileID: 5863061020199015852}
|
||||||
- {fileID: 7561534673732080682}
|
- {fileID: 7561534673732080682}
|
||||||
|
- {fileID: 328772590547044964}
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!114 &8272839718325411334
|
--- !u!114 &8272839718325411334
|
||||||
@@ -230,6 +560,21 @@ Rigidbody:
|
|||||||
m_Interpolate: 0
|
m_Interpolate: 0
|
||||||
m_Constraints: 112
|
m_Constraints: 112
|
||||||
m_CollisionDetection: 0
|
m_CollisionDetection: 0
|
||||||
|
--- !u!114 &3240800621832008763
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7522161431095319480}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: ea510cea4b9ed1547ae4725a2ded949a, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Assembly-CSharp::Hallucinate.UI.ChatBubble
|
||||||
|
textDisplay: {fileID: 4454520411962799200}
|
||||||
|
canvasGroup: {fileID: 1620994605374968907}
|
||||||
|
bubbleRect: {fileID: 6775114823217050358}
|
||||||
--- !u!1001 &7561534673732472622
|
--- !u!1001 &7561534673732472622
|
||||||
PrefabInstance:
|
PrefabInstance:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -256,7 +601,7 @@ PrefabInstance:
|
|||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 400132, guid: f32cd9f795c1282478d3bc3fbd8b2831, type: 3}
|
- target: {fileID: 400132, guid: f32cd9f795c1282478d3bc3fbd8b2831, type: 3}
|
||||||
propertyPath: m_LocalRotation.w
|
propertyPath: m_LocalRotation.w
|
||||||
value: 1
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 400132, guid: f32cd9f795c1282478d3bc3fbd8b2831, type: 3}
|
- target: {fileID: 400132, guid: f32cd9f795c1282478d3bc3fbd8b2831, type: 3}
|
||||||
propertyPath: m_LocalRotation.x
|
propertyPath: m_LocalRotation.x
|
||||||
@@ -264,7 +609,7 @@ PrefabInstance:
|
|||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 400132, guid: f32cd9f795c1282478d3bc3fbd8b2831, type: 3}
|
- target: {fileID: 400132, guid: f32cd9f795c1282478d3bc3fbd8b2831, type: 3}
|
||||||
propertyPath: m_LocalRotation.y
|
propertyPath: m_LocalRotation.y
|
||||||
value: 0
|
value: -1
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 400132, guid: f32cd9f795c1282478d3bc3fbd8b2831, type: 3}
|
- target: {fileID: 400132, guid: f32cd9f795c1282478d3bc3fbd8b2831, type: 3}
|
||||||
propertyPath: m_LocalRotation.z
|
propertyPath: m_LocalRotation.z
|
||||||
@@ -276,7 +621,7 @@ PrefabInstance:
|
|||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 400132, guid: f32cd9f795c1282478d3bc3fbd8b2831, type: 3}
|
- target: {fileID: 400132, guid: f32cd9f795c1282478d3bc3fbd8b2831, type: 3}
|
||||||
propertyPath: m_LocalEulerAnglesHint.y
|
propertyPath: m_LocalEulerAnglesHint.y
|
||||||
value: 0
|
value: -180
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 400132, guid: f32cd9f795c1282478d3bc3fbd8b2831, type: 3}
|
- target: {fileID: 400132, guid: f32cd9f795c1282478d3bc3fbd8b2831, type: 3}
|
||||||
propertyPath: m_LocalEulerAnglesHint.z
|
propertyPath: m_LocalEulerAnglesHint.z
|
||||||
|
|||||||
@@ -37,6 +37,16 @@ public class EnemyAI : MonoBehaviour
|
|||||||
public float maxShootDelay = 3f;
|
public float maxShootDelay = 3f;
|
||||||
public float rotateSpeed = 50f;
|
public float rotateSpeed = 50f;
|
||||||
|
|
||||||
|
[Header("Conversation")]
|
||||||
|
public string npcName = "Guard";
|
||||||
|
public string persona = "You are a grumpy guard protecting gold.";
|
||||||
|
public float talkRange = 4f;
|
||||||
|
public float talkCooldown = 30f;
|
||||||
|
private float lastTalkTime;
|
||||||
|
private bool isTalking;
|
||||||
|
private EnemyAI talkingPartner;
|
||||||
|
private Hallucinate.UI.ChatBubble chatBubble;
|
||||||
|
|
||||||
[Header("Dodge Mechanics")]
|
[Header("Dodge Mechanics")]
|
||||||
public float dodgeForce = 8f; // Lực đẩy văng đi
|
public float dodgeForce = 8f; // Lực đẩy văng đi
|
||||||
public float dodgeDuration = 0.5f; // Thời gian nhào lộn/né
|
public float dodgeDuration = 0.5f; // Thời gian nhào lộn/né
|
||||||
@@ -54,6 +64,7 @@ public class EnemyAI : MonoBehaviour
|
|||||||
{
|
{
|
||||||
agent = GetComponent<NavMeshAgent>();
|
agent = GetComponent<NavMeshAgent>();
|
||||||
rb = GetComponent<Rigidbody>();
|
rb = GetComponent<Rigidbody>();
|
||||||
|
chatBubble = GetComponentInChildren<Hallucinate.UI.ChatBubble>(true);
|
||||||
// Tự động tìm các điểm tuần tra nếu chưa gán
|
// Tự động tìm các điểm tuần tra nếu chưa gán
|
||||||
if (patrolPoints == null || patrolPoints.Length == 0)
|
if (patrolPoints == null || patrolPoints.Length == 0)
|
||||||
{
|
{
|
||||||
@@ -148,7 +159,14 @@ public class EnemyAI : MonoBehaviour
|
|||||||
new TaskNode(ActionInvestigate)
|
new TaskNode(ActionInvestigate)
|
||||||
});
|
});
|
||||||
|
|
||||||
// 4. Không có gì -> Tuần tra theo điểm
|
// 4. Gần NPC khác -> nói chuyện (Mới)
|
||||||
|
var talkSequence = new Sequence(new List<Node>
|
||||||
|
{
|
||||||
|
new TaskNode(CheckCanTalkToNPC),
|
||||||
|
new TaskNode(ActionTalk)
|
||||||
|
});
|
||||||
|
|
||||||
|
// 5. Không có gì -> Tuần tra theo điểm
|
||||||
var patrolNode = new TaskNode(ActionPatrol);
|
var patrolNode = new TaskNode(ActionPatrol);
|
||||||
|
|
||||||
behaviorTreeRoot = new Selector(new List<Node>
|
behaviorTreeRoot = new Selector(new List<Node>
|
||||||
@@ -156,19 +174,46 @@ public class EnemyAI : MonoBehaviour
|
|||||||
laserSequence,
|
laserSequence,
|
||||||
chaseSequence,
|
chaseSequence,
|
||||||
investigateSequence,
|
investigateSequence,
|
||||||
|
talkSequence,
|
||||||
patrolNode
|
patrolNode
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
#region CONDITIONS
|
#region CONDITIONS
|
||||||
|
|
||||||
|
private NodeState CheckCanTalkToNPC()
|
||||||
|
{
|
||||||
|
if (playerHasArtifact || canSeePlayer) return NodeState.Failure;
|
||||||
|
if (Time.time < lastTalkTime + talkCooldown) return NodeState.Failure;
|
||||||
|
if (isTalking) return NodeState.Success;
|
||||||
|
|
||||||
|
// Tìm NPC gần nhất
|
||||||
|
Collider[] hitColliders = Physics.OverlapSphere(transform.position, talkRange);
|
||||||
|
foreach (var hit in hitColliders)
|
||||||
|
{
|
||||||
|
if (hit.gameObject != gameObject && hit.CompareTag("Enemy"))
|
||||||
|
{
|
||||||
|
EnemyAI other = hit.GetComponent<EnemyAI>();
|
||||||
|
if (other != null && !other.isTalking && Time.time >= other.lastTalkTime + talkCooldown)
|
||||||
|
{
|
||||||
|
talkingPartner = other;
|
||||||
|
return NodeState.Success;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return NodeState.Failure;
|
||||||
|
}
|
||||||
|
|
||||||
private NodeState CheckHasArtifact()
|
private NodeState CheckHasArtifact()
|
||||||
{
|
{
|
||||||
|
if (playerHasArtifact) StopConversation();
|
||||||
return playerHasArtifact ? NodeState.Success : NodeState.Failure;
|
return playerHasArtifact ? NodeState.Success : NodeState.Failure;
|
||||||
}
|
}
|
||||||
|
|
||||||
private NodeState CheckCanSeePlayer()
|
private NodeState CheckCanSeePlayer()
|
||||||
{
|
{
|
||||||
|
if (canSeePlayer) StopConversation();
|
||||||
return canSeePlayer ? NodeState.Success : NodeState.Failure;
|
return canSeePlayer ? NodeState.Success : NodeState.Failure;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -263,6 +308,78 @@ public class EnemyAI : MonoBehaviour
|
|||||||
Debug.Log("Laser Shot!");
|
Debug.Log("Laser Shot!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private NodeState ActionTalk()
|
||||||
|
{
|
||||||
|
if (talkingPartner == null) return NodeState.Failure;
|
||||||
|
|
||||||
|
if (!isTalking)
|
||||||
|
{
|
||||||
|
isTalking = true;
|
||||||
|
agent.isStopped = true;
|
||||||
|
|
||||||
|
// Xoay về phía bạn
|
||||||
|
FaceTarget(talkingPartner.transform.position);
|
||||||
|
|
||||||
|
// Bắt đầu hội thoại qua Gemini
|
||||||
|
StartNPCConversation();
|
||||||
|
}
|
||||||
|
|
||||||
|
return NodeState.Running;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void StartNPCConversation()
|
||||||
|
{
|
||||||
|
string prompt = $"You are {npcName}. You are talking to your fellow guard {talkingPartner.npcName}. " +
|
||||||
|
"Keep it short (1 sentence). Topic: gold security or complaining about work.";
|
||||||
|
|
||||||
|
Hallucinate.AI.GeminiService.Instance.GetResponse(persona, prompt, (response) => {
|
||||||
|
if (chatBubble != null) chatBubble.Show(response);
|
||||||
|
|
||||||
|
// Hẹn giờ kết thúc hội thoại
|
||||||
|
Invoke(nameof(EndConversation), 5f);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Thông báo cho bạn diễn cũng dừng lại để "nghe"
|
||||||
|
talkingPartner.OnPartnerTalked(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnPartnerTalked(EnemyAI partner)
|
||||||
|
{
|
||||||
|
isTalking = true;
|
||||||
|
talkingPartner = partner;
|
||||||
|
agent.isStopped = true;
|
||||||
|
FaceTarget(partner.transform.position);
|
||||||
|
|
||||||
|
// Chờ bạn nói xong mới phản hồi
|
||||||
|
Invoke(nameof(EndConversation), 6f);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void EndConversation()
|
||||||
|
{
|
||||||
|
isTalking = false;
|
||||||
|
lastTalkTime = Time.time;
|
||||||
|
if (agent != null) agent.isStopped = false;
|
||||||
|
talkingPartner = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void StopConversation()
|
||||||
|
{
|
||||||
|
if (!isTalking) return;
|
||||||
|
CancelInvoke(nameof(EndConversation));
|
||||||
|
EndConversation();
|
||||||
|
if (chatBubble != null) chatBubble.Show("Suỵt! Có gì đó không ổn...", 2f);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void FaceTarget(Vector3 targetPos)
|
||||||
|
{
|
||||||
|
Vector3 dir = targetPos - transform.position;
|
||||||
|
dir.y = 0;
|
||||||
|
if (dir != Vector3.zero)
|
||||||
|
{
|
||||||
|
transform.rotation = Quaternion.LookRotation(dir);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
#region DODGE MECHANIC
|
#region DODGE MECHANIC
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user