首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法实例化“场景对象”(Unity)

无法实例化“场景对象”(Unity)
EN

Stack Overflow用户
提问于 2021-01-12 06:33:15
回答 1查看 2K关注 0票数 1

我试图实例化场景中已经存在的对象,以便将其放大并“放大”,但当我玩游戏并悬停在对象上时,而不是显示放大卡时,会出现这样的错误:

代码语言:javascript
复制
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.

注意:我正在学习一个带有镜像的2D统一卡片游戏教程(2019.2.15f1),我使用的是另一个版本的统一(2020.1.0f1)。

首先,我用这个脚本实例化游戏中的对象,这个脚本从不抛出任何错误。

代码语言:javascript
复制
[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");
    }
}

当我稍后再次尝试实例化这些对象时,问题就出现了,这里是:

代码语言:javascript
复制
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);
}
EN

回答 1

Stack Overflow用户

发布于 2022-02-18 02:31:56

我知道这是一个很晚的答案,但我在遇到同样的问题时遇到了这个问题,也许在将来,有人会像我这样做,所以:

您所做的是将错误的预制件附加到检查器中的CardZoom脚本中。附放大卡的巡视员图像

我所做的,想必你也是这样做的,就是在这里附加Card1,这就是它没有复制NetworkIdentity的地方。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65679031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档