コード例 #1
0
        public void SpawnPet(UnturnedPlayer player, PlayerPet pet)
        {
            foreach (var activePet in GetPlayerActivePets(player.Id).ToArray())
            {
                InvokeKillPet(activePet);
            }

            var point = player.Position;

            AnimalManager.spawnAnimal(pet.AnimalId, point, player.Player.transform.rotation);

            // remove animal spawn
            AnimalManager.packs.RemoveAll(x => x.spawns.Exists(y => y.point == point));


            // I know it's crap and but that's the simplest way atm, please pr if you know better
            var animals = new List <Animal>();

            AnimalManager.getAnimalsInRadius(player.Position, 1, animals);

            pet.Animal = animals.FirstOrDefault(x => x.asset.id == pet.AnimalId);
            pet.Player = player.Player;

            ActivePets.Add(pet);
            OnPetSpawned.TryInvoke(pet);
        }
コード例 #2
0
        public void SpawnPet(UnturnedPlayer player, PlayerPet pet)
        {
            foreach (var activePet in GetPlayerActivePets(player.Id).ToArray())
            {
                KillPet(activePet);
            }

            pet.Animal = AnimalsHelper.SpawnAnimal(pet.AnimalId, player.Position, (byte)player.Rotation);
            pet.Player = player.Player;
            ActivePets.Add(pet);
            OnPetSpawned.TryInvoke(pet);
        }
コード例 #3
0
    void SpawnPetOnPlane()
    {
        if (petPrefab == null || dogTypeProvider == null || dogTypeProvider.NumDogTypes == 0)
        {
            return;
        }

        GameObject spawnedPet = Instantiate(petPrefab, arPlaneFinder.SurfacePlane.CenterPose.position, arPlaneFinder.SurfacePlane.CenterPose.rotation);

        spawnedPet.transform.parent = arPlaneFinder.SurfaceAnchor.transform;

        GameObject dogMesh = Instantiate(dogTypeProvider.GetRandomDogType(), spawnedPet.transform.position, spawnedPet.transform.rotation, spawnedPet.transform);

        PetMovementBehavior planeMovementComp = spawnedPet.GetComponent <PetMovementBehavior>();

        if (planeMovementComp != null)
        {
            planeMovementComp.DogAnimator = dogMesh.GetComponent <Animator>();
        }

        OnPetSpawned?.Invoke(spawnedPet);
    }