Exemplo n.º 1
0
        // 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);
        }
Exemplo n.º 2
0
 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);
 }