public static bool GetTerrainPoint(float x, float z, float curHeight, out Vector3 result) { if (!MySceneManager.Instance.IsSceneExist) { result = new Vector3(x, curHeight, z); return(false); } return(XUtility.GetTerrainPoint(x, z, curHeight, out result)); }
public static bool GetRoughPathPoint(float desX, float desZ, float accuracy, out List <Vector3> pathPoint) { XUtility.mRoughPathPoint.Clear(); pathPoint = XUtility.mRoughPathPoint; Vector3 position; if (!XUtility.GetTerrainPoint(desX, desZ, 0f, out position)) { return(false); } NavMeshHit navMeshHit; if (!NavMesh.SamplePosition(position, ref navMeshHit, 500f, -1)) { return(false); } position = navMeshHit.get_position(); Vector3 position2 = EntityWorld.Instance.EntSelf.Actor.FixTransform.get_position(); if (!NavMesh.SamplePosition(EntityWorld.Instance.EntSelf.Actor.FixTransform.get_position(), ref navMeshHit, 500f, -1)) { return(false); } Vector3 position3 = navMeshHit.get_position(); NavMeshPath navMeshPath = new NavMeshPath(); if (!NavMesh.CalculatePath(position2, position, -1, navMeshPath)) { return(false); } if (navMeshPath.get_corners().Length < 2) { return(false); } pathPoint.AddRange(navMeshPath.get_corners()); if (XUtility.DistanceNoY(position3, navMeshPath.get_corners()[0]) > accuracy) { pathPoint.Insert(0, position3); } if (XUtility.DistanceNoY(position2, position3) > accuracy) { pathPoint.Insert(0, position2); } return(true); }
public void Treat(BattleAction_Treat data, bool isServerData) { if (data.beTreatedSoldierId != this.owner.ID) { return; } Vector3 casterPosition = Vector3.get_zero(); if (EntityWorld.Instance.AllEntities.ContainsKey(data.treatSrcSoldierId)) { bool flag; if (EntityWorld.Instance.AllEntities[data.treatSrcSoldierId].Actor) { flag = true; casterPosition = EntityWorld.Instance.AllEntities[data.treatSrcSoldierId].Actor.FixTransform.get_position(); } else { flag = (data.pos != null); if (flag) { casterPosition = XUtility.GetTerrainPoint(data.pos.x * 0.01f, data.pos.y * 0.01f, 0f); } } this.owner.SetHPChange(HPChangeMessage.GetTreatMessage(data.treatHp, data.treatSrcType, this.owner, EntityWorld.Instance.AllEntities[data.treatSrcSoldierId], flag, casterPosition)); } else { bool flag = data.pos != null; if (flag) { casterPosition = XUtility.GetTerrainPoint(data.pos.x * 0.01f, data.pos.y * 0.01f, 0f); } this.owner.SetHPChange(HPChangeMessage.GetTreatMessage(data.treatHp, data.treatSrcType, this.owner, null, flag, casterPosition)); } this.owner.Hp = data.hp; }
public static Vector3 GetTerrainPoint(float x, float z, float curHeight) { return(XUtility.GetTerrainPoint(x, z, curHeight)); }