como el código tal cual se me presentaba el error, cuando inicia el juego mi cámara se destruÃa simplemente cambie lo que esta en el método start por el método awake.
Introducción
Game Design del juego
La estructura y assets de un proyecto en Unity
Convirtiendo nuestros assets en Tiles
Tilemaps y creación del escenario
Bonus: FastForward de la creación del escenario, sorting layers y creación de colliders
Acá encontrarás los archivos de este curso
Personaje principal: Movimiento y Animaciones
El jugador y el movimiento
Creando nuestra primera animación
Creando el grafo de animaciones
Usando un árbol de animaciones
Mostrando la solución del desafÃo e implementando transición entre blended trees
Programando una cámara que siga al jugador
Corrección del bug gráfico
lÃmites del escenario, rigid bodies
Ejercicio: diseño de interiores
Escenarios Avanzados
Transiciones entre escenas
Mantener Player y Camera entre escenas
Spawning Points: programando que el jugador y la cámara aparezcan en el lugar correcto al cambiar de escena
Agregando Identificadores a nuestros Spawning Points para controlar mejor el flujo de nuestro juego
Enemigos Avanzados
Creando nuestro enemigo
Programando las fÃsicas y el patrullaje del enemigo
Generando movimiento completamente aleatorio
Programando el ataque del enemigo
Crear Manager de Health del Player
Crear armas
Programando el ataque del Player con arma
Mover la espada al caminar
Creando el ataque con espada
Ejecutando el ataque con un botón
Movimiento en diagonal
Optimizando nuestro player controller
Ataque mejorado
Uso de partÃculas
Añadir el daño del enemigo en batalla
Programando los contadores de vida del enemigo
Colocando más info de UI en pantalla
Script de la vida
Personaje principal avanzado
Añadir el daño del personaje (ejercicio)
Sistema de puntos de experiencia para nuestro personaje principal
Level Up!
Level Up! Defensa y Reto Final del Módulo: Stats de los enemigos
Creando un NPC
Limitar el movimiento de nuestro NPC
Creando una pantalla de diálogos para nuestro RPG
El diálogo del NPC
Múltiples lÃneas de diálogo
Parar el NPC durante el diálogo
Parar el personaje durante el diálogo
Quests
La estructura de una quest
Quest 1: Ir a un lugar
Quest 2: Encontrar un objeto
Quest 3: Matar enemigos
Revisión de bugs
Mantener la cámara dentro del escenario
El problema al cambiar de escena
Audio
Agregando SFX a nuestro videojuego
Agregando música a nuestro videojuego
Ajustar volúmen del audio de cada uno de los efectos de sonido
Creando un VolumeManager
Agregando economÃa a nuestro juego y cierre
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Juan Gabriel Gomila
Aportes 6
Preguntas 0
como el código tal cual se me presentaba el error, cuando inicia el juego mi cámara se destruÃa simplemente cambie lo que esta en el método start por el método awake.
Creo que la solución presentada es un poco compleja, y me ha dado algunos errores en versiones posteriores de Unity 2019.3.0f por lo que les dejo mi solución, esta realmente solo tiene que ser agregada sin mas al Game Object que no queramos que sea destruido en la carga de escenas.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DontDestroyOnLoad : MonoBehaviour
{
void Awake()
{
// Primero creamos un Array que busque y guarde todos los objetos que contengan la misma tag
GameObject[] objectsWithSameTag = GameObject.FindGameObjectsWithTag(this.gameObject.tag);
// Si el largo de nuestro array es mayor que uno destruimos el objeto que intenta instanciarse,
if (objectsWithSameTag.Length > 1)
{
Destroy(this.gameObject);
}
// Si la condicion de arriba no se cumple llamamos a DontDestroyOnLoad
DontDestroyOnLoad(this.gameObject);
}
}
En un inicio no entendia por que lo hacia de esta manera, pero ahora que ya entendi que es lo que sucede, es un truco buenisimo. Puesto que unicamnete tendremos que poner spwan points y no camaras y personajes en cada escena, lo cual ademas de hacerlo mas facil de programar pienso que tambien dara un mejor rendimieto 😄
He seguido las intrucciones, pero no me queda claro como funcionan nuestros nuevos scripts. Es decir, entiendo que en el DontDestroyOnLoad Script, estamos verificando si el PlayerController ya se creo, pero en el PlayerController, estamos cambiando de estado la variable playerCreated a true en caso de que por alguna extraña razón esta, esté falsa No entiendo cuál es el verdadero sentido de tenerla ¿Alguien me puede ayudar a entender?
Yo le sigo dando vueltas al problema de que a veces cuando vuelve al MainScene el Player y la cámara aparecen en otro lado, o el player aparece en el spawn y la cámara en otro lado y tarda medio segundo en ir hasta el player.
En el script del CameraFollow le copie la linea que estaba en Update y se la pegue en el Start.
targetPosition = new Vector3(followTarget.transform.position.x, followTarget.transform.position.y,this.transform.position.z);
Con esto mejoro bastante, pero a veces me pasa lo arriba mencionado. Creo que si uno entra y sale rápido de las escenas es el problema. Quizá dando una pequeña animación en el cambio de escena, que inmovilice un segundo al Player mejorarÃa bastante el problema. Creo recordar que los primeros Pokemon de Game Boy tenÃan algo asÃ.
Genial
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?