Estoy tratando de crear una instancia de un objeto que ya existe en la escena para poder agrandarlo y "acercarlo", pero cuando juego y paso el mouse sobre un objeto, en lugar de mostrar la tarjeta ampliada, aparece este error. :
Card1(Clone)(Clone) has already spawned. Don't call Instantiate for NetworkIdentities that were in the scene since the beginning (aka scene objects). Otherwise the client won't know which object to use for a SpawnSceneObject message.NOTA: Estoy siguiendo un tutorial para un juego de Unity Card 2D con espejo (2019.2.15f1) y estoy usando una versión diferente de Unity (2020.1.0f1).
Primero, estoy instanciando objetos en mi juego con este script, que nunca arroja ningún error.
[Command] public void CmdDealCards() { for (int i = 0; i < 4; i++) { GameObject card = Instantiate(playerDeck[Random.Range(0, playerDeck.Count)], new Vector2(0, 0), Quaternion.identity); NetworkServer.Spawn(card, connectionToClient); RpcShowCard(card, "Dealt"); } }El problema surge cuando intento volver a instanciar estos objetos más tarde, aquí:
public void OnHoverEnter() { zoomCard = Instantiate(gameObject, new Vector2(Input.mousePosition.x, 540), Quaternion.identity); zoomCard.transform.SetParent(Canvas.transform, true); zoomCard.layer = LayerMask.NameToLayer("Zoom"); RectTransform rect = zoomCard.GetComponent<RectTransform>(); rect.sizeDelta = new Vector2(240, 354); }Sé que esta es una respuesta muy tardía, pero la encontré mientras me encontraba con el mismo problema, y tal vez en el futuro, alguien haga lo mismo que yo, así que:
Lo que ha hecho es adjuntar el prefabricado incorrecto a su secuencia de comandos CardZoom en el Inspector. Imagen del Inspector con tarjeta Zoom adjunta
Lo que hice, y presumiblemente usted también, fue adjuntar la Tarjeta 1 aquí, que es donde no se pudo duplicar la NetworkIdentity.