no message

This commit is contained in:
2026-02-13 07:55:30 +00:00
parent d564c5f44e
commit a45873aee0
11 changed files with 149 additions and 37 deletions

View File

@@ -1,6 +1,5 @@
using System;
using System.Collections.Generic;
using Unity.VisualScripting.YamlDotNet.Core.Tokens;
namespace EasyTalk.Nodes.Tags
{

8
Assets/Resources.meta Normal file
View File

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

View File

@@ -61,6 +61,9 @@ public abstract class Character : MonoBehaviour
[SerializeField]
private NavMeshAgent navMeshAgent;
[SerializeField]
[Tooltip("Max distance used to snap this character to the nearest NavMesh point at startup.")]
private float navMeshSnapDistance = 2f;
[Header("Animation Settings")]
[SerializeField]
@@ -156,11 +159,36 @@ public abstract class Character : MonoBehaviour
}
}
protected virtual void Start()
{
EnsureNavMeshAgentReady();
}
protected virtual void Update()
{
UpdateMovementAnimatorParams();
}
protected bool EnsureNavMeshAgentReady()
{
if (navMeshAgent == null || !navMeshAgent.isActiveAndEnabled)
{
return false;
}
if (navMeshAgent.isOnNavMesh)
{
return true;
}
if (NavMesh.SamplePosition(transform.position, out NavMeshHit hit, navMeshSnapDistance, NavMesh.AllAreas))
{
return navMeshAgent.Warp(hit.position) && navMeshAgent.isOnNavMesh;
}
return false;
}
public void TakeDamage(int damageToTake)
{
if (damageToTake < 0) damageToTake = 0;
@@ -421,7 +449,7 @@ public abstract class Character : MonoBehaviour
if (animator == null) return;
float speed = 0f;
if (navMeshAgent != null)
if (navMeshAgent != null && navMeshAgent.isActiveAndEnabled && EnsureNavMeshAgentReady())
{
speed = navMeshAgent.velocity.magnitude;

View File

@@ -334,7 +334,19 @@ public class ClickToMoveInputSystem : MonoBehaviour
{
// fallback: try to find NavMeshAgent on player root
var agent = Player.current.GetComponent<NavMeshAgent>();
if (agent != null) agent.SetDestination(groundHit.point);
if (agent != null && agent.isActiveAndEnabled)
{
if (agent.isOnNavMesh)
{
agent.SetDestination(groundHit.point);
}
else if (NavMesh.SamplePosition(Player.current.transform.position, out NavMeshHit hit, 2f, NavMesh.AllAreas) &&
agent.Warp(hit.position) &&
agent.isOnNavMesh)
{
agent.SetDestination(groundHit.point);
}
}
}
}
}

View File

@@ -10,10 +10,12 @@ public class NavMeshMovementController : MonoBehaviour
[Header("Rotation")]
public bool enableSmartRotation = true;
public float rotationSpeed = 10f;
public float navMeshSnapDistance = 2f;
NavMeshAgent agent;
Vector3 lastVelocity = Vector3.zero;
Vector3? lookAtTarget = null; // Optional target to face when stopped
bool navMeshSnapAttempted = false;
void Awake()
{
@@ -24,9 +26,14 @@ public class NavMeshMovementController : MonoBehaviour
}
}
void Start()
{
EnsureAgentReady();
}
void Update()
{
if (agent == null) return;
if (!EnsureAgentReady()) return;
// Update rotation based on movement direction
if (enableSmartRotation)
@@ -65,7 +72,7 @@ public class NavMeshMovementController : MonoBehaviour
public void MoveTo(Vector3 worldPosition)
{
if (agent == null) return;
if (!EnsureAgentReady()) return;
agent.isStopped = false;
agent.SetDestination(worldPosition);
lookAtTarget = null; // Clear look target when starting new movement
@@ -73,7 +80,7 @@ public class NavMeshMovementController : MonoBehaviour
public void MoveToAndLookAt(Vector3 worldPosition, Vector3 lookTarget)
{
if (agent == null) return;
if (!EnsureAgentReady()) return;
agent.isStopped = false;
agent.SetDestination(worldPosition);
lookAtTarget = lookTarget; // Set look target for when we arrive
@@ -81,7 +88,7 @@ public class NavMeshMovementController : MonoBehaviour
public void Stop()
{
if (agent == null) return;
if (!EnsureAgentReady()) return;
agent.isStopped = true;
}
@@ -97,11 +104,38 @@ public class NavMeshMovementController : MonoBehaviour
public bool IsAtDestination(float tolerance = 0.1f)
{
if (agent == null) return true;
if (!EnsureAgentReady()) return true;
return !agent.pathPending && agent.remainingDistance <= agent.stoppingDistance + tolerance;
}
public Vector3 GetVelocity() => lastVelocity;
public float GetSpeed() => agent != null ? agent.velocity.magnitude : 0f;
public float GetSpeed() => EnsureAgentReady() ? agent.velocity.magnitude : 0f;
bool EnsureAgentReady()
{
if (agent == null || !agent.isActiveAndEnabled)
{
return false;
}
if (agent.isOnNavMesh)
{
return true;
}
if (navMeshSnapAttempted)
{
return false;
}
navMeshSnapAttempted = true;
if (NavMesh.SamplePosition(transform.position, out NavMeshHit hit, navMeshSnapDistance, NavMesh.AllAreas))
{
return agent.Warp(hit.position) && agent.isOnNavMesh;
}
return false;
}
}

View File

@@ -98,7 +98,7 @@ public class TriggerEvents : MonoBehaviour
// Fallback to NavMeshAgent
UnityEngine.AI.NavMeshAgent agent = target.GetComponent<UnityEngine.AI.NavMeshAgent>();
if (agent != null)
if (agent != null && agent.isActiveAndEnabled && agent.isOnNavMesh)
{
agent.isStopped = true;
agent.ResetPath();

View File

@@ -53,6 +53,7 @@ MonoBehaviour:
m_AdditionalLightsShadowResolutionTierHigh: 1024
m_ReflectionProbeBlending: 1
m_ReflectionProbeBoxProjection: 1
m_ReflectionProbeAtlas: 1
m_ShadowDistance: 50
m_ShadowCascadeCount: 1
m_Cascade2Split: 0.25
@@ -78,11 +79,11 @@ MonoBehaviour:
m_UseAdaptivePerformance: 1
m_ColorGradingMode: 0
m_ColorGradingLutSize: 32
m_AllowPostProcessAlphaOutput: 0
m_UseFastSRGBLinearConversion: 1
m_SupportDataDrivenLensFlare: 1
m_SupportScreenSpaceLensFlare: 1
m_GPUResidentDrawerMode: 0
m_UseLegacyLightmaps: 0
m_SmallMeshScreenPercentage: 0
m_GPUResidentDrawerEnableOcclusionCullingInCameras: 0
m_ShadowType: 1
@@ -100,23 +101,24 @@ MonoBehaviour:
m_Keys: []
m_Values:
m_PrefilteringModeMainLightShadows: 3
m_PrefilteringModeAdditionalLight: 4
m_PrefilteringModeAdditionalLight: 3
m_PrefilteringModeAdditionalLightShadows: 0
m_PrefilterXRKeywords: 1
m_PrefilteringModeForwardPlus: 1
m_PrefilteringModeForwardPlus: 0
m_PrefilteringModeDeferredRendering: 0
m_PrefilteringModeScreenSpaceOcclusion: 0
m_PrefilterDebugKeywords: 1
m_PrefilterWriteRenderingLayers: 1
m_PrefilterHDROutput: 1
m_PrefilterAlphaOutput: 1
m_PrefilterSSAODepthNormals: 1
m_PrefilterSSAOSourceDepthLow: 1
m_PrefilterSSAOSourceDepthMedium: 0
m_PrefilterSSAOSourceDepthMedium: 1
m_PrefilterSSAOSourceDepthHigh: 1
m_PrefilterSSAOInterleaved: 0
m_PrefilterSSAOInterleaved: 1
m_PrefilterSSAOBlueNoise: 1
m_PrefilterSSAOSampleCountLow: 1
m_PrefilterSSAOSampleCountMedium: 0
m_PrefilterSSAOSampleCountMedium: 1
m_PrefilterSSAOSampleCountHigh: 1
m_PrefilterDBufferMRT1: 1
m_PrefilterDBufferMRT2: 1
@@ -128,6 +130,10 @@ MonoBehaviour:
m_PrefilterScreenCoord: 1
m_PrefilterNativeRenderPass: 1
m_PrefilterUseLegacyLightmaps: 0
m_PrefilterBicubicLightmapSampling: 1
m_PrefilterReflectionProbeBlending: 0
m_PrefilterReflectionProbeBoxProjection: 0
m_PrefilterReflectionProbeAtlas: 1
m_ShaderVariantLogLevel: 0
m_ShadowCascades: 0
m_Textures:

View File

@@ -53,6 +53,7 @@ MonoBehaviour:
m_AdditionalLightsShadowResolutionTierHigh: 1024
m_ReflectionProbeBlending: 1
m_ReflectionProbeBoxProjection: 1
m_ReflectionProbeAtlas: 1
m_ShadowDistance: 50
m_ShadowCascadeCount: 4
m_Cascade2Split: 0.25
@@ -78,11 +79,11 @@ MonoBehaviour:
m_UseAdaptivePerformance: 1
m_ColorGradingMode: 0
m_ColorGradingLutSize: 32
m_AllowPostProcessAlphaOutput: 0
m_UseFastSRGBLinearConversion: 0
m_SupportDataDrivenLensFlare: 1
m_SupportScreenSpaceLensFlare: 1
m_GPUResidentDrawerMode: 0
m_UseLegacyLightmaps: 0
m_SmallMeshScreenPercentage: 0
m_GPUResidentDrawerEnableOcclusionCullingInCameras: 0
m_ShadowType: 1
@@ -100,15 +101,16 @@ MonoBehaviour:
m_Keys: []
m_Values:
m_PrefilteringModeMainLightShadows: 3
m_PrefilteringModeAdditionalLight: 4
m_PrefilteringModeAdditionalLightShadows: 0
m_PrefilteringModeAdditionalLight: 0
m_PrefilteringModeAdditionalLightShadows: 2
m_PrefilterXRKeywords: 1
m_PrefilteringModeForwardPlus: 1
m_PrefilteringModeForwardPlus: 2
m_PrefilteringModeDeferredRendering: 0
m_PrefilteringModeScreenSpaceOcclusion: 1
m_PrefilteringModeScreenSpaceOcclusion: 2
m_PrefilterDebugKeywords: 1
m_PrefilterWriteRenderingLayers: 0
m_PrefilterWriteRenderingLayers: 1
m_PrefilterHDROutput: 1
m_PrefilterAlphaOutput: 1
m_PrefilterSSAODepthNormals: 0
m_PrefilterSSAOSourceDepthLow: 1
m_PrefilterSSAOSourceDepthMedium: 1
@@ -120,14 +122,18 @@ MonoBehaviour:
m_PrefilterSSAOSampleCountHigh: 1
m_PrefilterDBufferMRT1: 1
m_PrefilterDBufferMRT2: 1
m_PrefilterDBufferMRT3: 0
m_PrefilterSoftShadowsQualityLow: 0
m_PrefilterSoftShadowsQualityMedium: 0
m_PrefilterSoftShadowsQualityHigh: 0
m_PrefilterDBufferMRT3: 1
m_PrefilterSoftShadowsQualityLow: 1
m_PrefilterSoftShadowsQualityMedium: 1
m_PrefilterSoftShadowsQualityHigh: 1
m_PrefilterSoftShadows: 0
m_PrefilterScreenCoord: 1
m_PrefilterNativeRenderPass: 1
m_PrefilterUseLegacyLightmaps: 0
m_PrefilterBicubicLightmapSampling: 1
m_PrefilterReflectionProbeBlending: 0
m_PrefilterReflectionProbeBoxProjection: 0
m_PrefilterReflectionProbeAtlas: 0
m_ShaderVariantLogLevel: 0
m_ShadowCascades: 0
m_Textures:

View File

@@ -63,7 +63,21 @@ MonoBehaviour:
- rid: 2559183924860551175
- rid: 2559183924860551176
m_RuntimeSettings:
m_List: []
m_List:
- rid: 6852985685364965378
- rid: 6852985685364965379
- rid: 6852985685364965380
- rid: 6852985685364965381
- rid: 6852985685364965384
- rid: 6852985685364965385
- rid: 6852985685364965392
- rid: 6852985685364965394
- rid: 8712630790384254976
- rid: 2559183924860551169
- rid: 2559183924860551171
- rid: 2559183924860551172
- rid: 2559183924860551175
- rid: 2559183924860551176
m_AssetVersion: 8
m_ObsoleteDefaultVolumeProfile: {fileID: 0}
m_RenderingLayerNames:

View File

@@ -36,10 +36,8 @@ GraphicsSettings:
- {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0}
m_PreloadedShaders: []
m_PreloadShadersBatchTimeLimit: -1
m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000,
type: 0}
m_CustomRenderPipeline: {fileID: 11400000, guid: 4b83569d67af61e458304325a23e5dfd,
type: 2}
m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
m_CustomRenderPipeline: {fileID: 11400000, guid: 4b83569d67af61e458304325a23e5dfd, type: 2}
m_TransparencySortMode: 0
m_TransparencySortAxis: {x: 0, y: 0, z: 1}
m_DefaultRenderingPath: 1
@@ -60,8 +58,7 @@ GraphicsSettings:
m_FogKeepExp2: 1
m_AlbedoSwatchInfos: []
m_RenderPipelineGlobalSettingsMap:
UnityEngine.Rendering.Universal.UniversalRenderPipeline: {fileID: 11400000, guid: 18dc0cd2c080841dea60987a38ce93fa,
type: 2}
UnityEngine.Rendering.Universal.UniversalRenderPipeline: {fileID: 11400000, guid: 18dc0cd2c080841dea60987a38ce93fa, type: 2}
m_LightsUseLinearIntensity: 1
m_LightsUseColorTemperature: 1
m_LogWhenShaderIsCompiled: 0

View File

@@ -143,7 +143,8 @@ PlayerSettings:
visionOSBundleVersion: 1.0
tvOSBundleVersion: 1.0
bundleVersion: 0.1.0
preloadedAssets: []
preloadedAssets:
- {fileID: -944628639613478452, guid: 052faaac586de48259a63d0c4782560b, type: 3}
metroInputSource: 0
wsaTransparentSwapchain: 0
m_HolographicPauseOnTrackingLoss: 1
@@ -521,7 +522,10 @@ PlayerSettings:
m_Height: 720
m_Kind: 1
m_SubKind:
m_BuildTargetBatching: []
m_BuildTargetBatching:
- m_BuildTarget: WebGL
m_StaticBatching: 0
m_DynamicBatching: 0
m_BuildTargetShaderSettings: []
m_BuildTargetGraphicsJobs: []
m_BuildTargetGraphicsJobMode: []
@@ -557,6 +561,9 @@ PlayerSettings:
- serializedVersion: 3
m_BuildTarget: Android
m_Formats: 03000000
- serializedVersion: 3
m_BuildTarget: WebGL
m_Formats: 05000000
playModeTestRunnerEnabled: 0
runPlayModeTestAsEditModeTest: 0
actionOnDotNetUnhandledException: 1
@@ -824,6 +831,7 @@ PlayerSettings:
webEnableSubmoduleStrippingCompatibility: 0
scriptingDefineSymbols:
Standalone: TEXTMESHPRO_INSTALLED
WebGL: TEXTMESHPRO_INSTALLED
additionalCompilerArguments: {}
platformArchitecture: {}
scriptingBackend:
@@ -845,7 +853,7 @@ PlayerSettings:
m_RenderingPath: 1
m_MobileRenderingPath: 1
metroPackageName: TopDownRPG
metroPackageVersion:
metroPackageVersion: 1.0.0.0
metroCertificatePath:
metroCertificatePassword:
metroCertificateSubject:
@@ -853,7 +861,7 @@ PlayerSettings:
metroCertificateNotAfter: 0000000000000000
metroApplicationDescription: TopDownRPG
wsaImages: {}
metroTileShortName:
metroTileShortName: TopDownRPG
metroTileShowName: 0
metroMediumTileShowName: 0
metroLargeTileShowName: 0