// Token: 0x06000AA8 RID: 2728 RVA: 0x00048E38 File Offset: 0x00047038 public override GameObject DoSpawn(Vector3 position, Quaternion rotation) { Vector3 position2 = position; position2.y += Util.GetBodyPrefabFootOffset(this.prefab); GameObject gameObject = UnityEngine.Object.Instantiate <GameObject>(this.prefab, position2, rotation); NetworkServer.Spawn(gameObject); return(gameObject); }
public CharacterBody Respawn(Vector3 footPosition, Quaternion rotation) { if (!NetworkServer.active) { Debug.LogWarning("[Server] function 'RoR2.CharacterBody RoR2.CharacterMaster::Respawn(UnityEngine.Vector3,UnityEngine.Quaternion)' called on client"); return(null); } this.DestroyBody(); if (this.bodyPrefab) { Vector3 position = footPosition; position.y += Util.GetBodyPrefabFootOffset(this.bodyPrefab); return(this.SpawnBody(this.bodyPrefab, position, rotation)); } return(null); }
public CharacterBody Respawn(Vector3 footPosition, Quaternion rotation, bool tryToGroundSafely = false) { if (!NetworkServer.active) { Debug.LogWarning("[Server] function 'RoR2.CharacterBody RoR2.CharacterMaster::Respawn(UnityEngine.Vector3,UnityEngine.Quaternion,System.Boolean)' called on client"); return(null); } this.DestroyBody(); if (this.bodyPrefab) { CharacterBody component = this.bodyPrefab.GetComponent <CharacterBody>(); if (component) { Vector3 vector = footPosition; if (tryToGroundSafely) { Vector3 vector2 = vector; RaycastHit raycastHit = default(RaycastHit); Ray ray = new Ray(footPosition + Vector3.up * 1f, Vector3.down); float maxDistance = 3f; if (Physics.SphereCast(ray, component.radius, out raycastHit, maxDistance, LayerIndex.world.mask)) { vector2.y += 1f - raycastHit.distance; } vector = vector2; } Vector3 position = new Vector3(vector.x, vector.y + Util.GetBodyPrefabFootOffset(this.bodyPrefab), vector.z); return(this.SpawnBody(this.bodyPrefab, position, rotation)); } Debug.LogErrorFormat("Trying to respawn as object {0} who has no Character Body!", new object[] { this.bodyPrefab }); } else { Debug.LogErrorFormat("CharacterMaster.Respawn failed. {0} does not have a valid body prefab assigned.", new object[] { base.gameObject.name }); } return(null); }