寻路逻辑,给每个npc一个目标点
This commit is contained in:
parent
aea6ce1bfa
commit
52ba7a2567
@ -1,5 +1,36 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &4995935176814719679
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4972410492480051969}
|
||||
m_Layer: 0
|
||||
m_Name: mubiao
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &4972410492480051969
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4995935176814719679}
|
||||
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: 8479287258615548071}
|
||||
m_RootOrder: 3
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1001 &3353283690660036973
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -1441,6 +1472,11 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 2c4a835a9676e1a478c77d64f472c3ec, type: 3}
|
||||
--- !u!4 &8479287258615548071 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 6567720597980285386, guid: 2c4a835a9676e1a478c77d64f472c3ec, type: 3}
|
||||
m_PrefabInstance: {fileID: 3353283690660036973}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1 &9144465012532105757 stripped
|
||||
GameObject:
|
||||
m_CorrespondingSourceObject: {fileID: 5795828957522809712, guid: 2c4a835a9676e1a478c77d64f472c3ec, type: 3}
|
||||
@ -1473,23 +1509,6 @@ BoxCollider:
|
||||
serializedVersion: 2
|
||||
m_Size: {x: 0.4576242, y: 1.53, z: 0.77643585}
|
||||
m_Center: {x: -0.013215661, y: 0.77, z: 0.009899139}
|
||||
--- !u!114 &5519024520137767209
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 9144465012532105757}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: ea3c4e24ebc42194181651236cdf30f1, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
npcId:
|
||||
nstate: 1
|
||||
target: {fileID: 0}
|
||||
currentTarget: {x: 0, y: 0, z: 0}
|
||||
targetPoints: []
|
||||
--- !u!195 &3307599082991733569
|
||||
NavMeshAgent:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -1512,3 +1531,21 @@ NavMeshAgent:
|
||||
m_BaseOffset: 0
|
||||
m_WalkableMask: 4294967295
|
||||
m_ObstacleAvoidanceType: 4
|
||||
--- !u!114 &5519024520137767209
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 9144465012532105757}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: ea3c4e24ebc42194181651236cdf30f1, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
npcId:
|
||||
recusebtn: {fileID: 0}
|
||||
nstate: 1
|
||||
target: {fileID: 0}
|
||||
currentTarget: {x: 0, y: 0, z: 0}
|
||||
targetPoints: []
|
||||
|
@ -6,9 +6,9 @@ using UnityEngine.AI;
|
||||
|
||||
public enum Npcstate
|
||||
{
|
||||
idle,
|
||||
dead,
|
||||
run
|
||||
idle,
|
||||
dead,
|
||||
run
|
||||
}
|
||||
|
||||
public class RecuseNpc : MonoBehaviour
|
||||
@ -45,7 +45,7 @@ public class RecuseNpc : MonoBehaviour
|
||||
instance = this;
|
||||
//recusebtn = GameObject.Find("Canvas/Recuse").GetComponent<Button>();
|
||||
anim = this.GetComponent<Animator>();
|
||||
|
||||
target = transform.Find("mubiao").GetComponent<Transform>();
|
||||
navMeshAgent = GetComponent<NavMeshAgent>();
|
||||
|
||||
// 初始化 NavMeshAgent 的一些属性
|
||||
@ -58,10 +58,10 @@ public class RecuseNpc : MonoBehaviour
|
||||
|
||||
private void OnTriggerEnter(Collider other)
|
||||
{
|
||||
if(other.tag == "Player")
|
||||
recusebtn.gameObject.SetActive(true);
|
||||
if (other.tag == "Player")
|
||||
recusebtn.gameObject.SetActive(true);
|
||||
if (statebool) return;
|
||||
other.GetComponent<CharacterInturn>().cha = this.gameObject ;
|
||||
other.GetComponent<CharacterInturn>().cha = this.gameObject;
|
||||
}
|
||||
|
||||
private void OnTriggerExit(Collider other)
|
||||
@ -80,14 +80,14 @@ public class RecuseNpc : MonoBehaviour
|
||||
movebool = true;
|
||||
nstate = Npcstate.idle;
|
||||
recusebtn.gameObject.SetActive(false);
|
||||
Debug.Log( npcId + "被救");
|
||||
Debug.Log(npcId + "被救");
|
||||
}
|
||||
|
||||
//添加npc的目的地到list中
|
||||
public void SetNpcDes(Vector3 tar)
|
||||
{
|
||||
Debug.Log(tar);
|
||||
//target.position = tar;
|
||||
target.position = tar;
|
||||
NavMeshHit hit;
|
||||
if (!NavMesh.SamplePosition(tar, out hit, 1.0f, NavMesh.AllAreas))
|
||||
{
|
||||
@ -103,6 +103,7 @@ public class RecuseNpc : MonoBehaviour
|
||||
|
||||
private void Update()
|
||||
{
|
||||
|
||||
if (targetPoints.Count > 0)
|
||||
{
|
||||
currentTarget = targetPoints[0];
|
||||
@ -111,8 +112,8 @@ public class RecuseNpc : MonoBehaviour
|
||||
|
||||
float dis = Vector3.Distance(transform.position, currentTarget);
|
||||
|
||||
// 停止条件改为 NavMeshAgent.stoppingDistance
|
||||
if (movebool && dis <= 0.2f)
|
||||
// 停止条件改为
|
||||
if (movebool && dis <= 0.1f)
|
||||
{
|
||||
Debug.Log("到达目标点");
|
||||
nstate = Npcstate.idle;
|
||||
@ -150,7 +151,6 @@ public class RecuseNpc : MonoBehaviour
|
||||
|
||||
public void Run(Vector3 target)
|
||||
{
|
||||
Debug.Log(target);
|
||||
if (movebool)
|
||||
{
|
||||
// 确保目标点在 NavMesh 上
|
||||
|
Loading…
Reference in New Issue
Block a user