首页 > 解决方案 > 统一为什么不能实例化游戏对象

问题描述

我目前正在使用 Unity 进行编码,并且正在尝试实例化一个游戏对象。我正在开发的机制将删除我正在使用的图像并使用两个按钮加载下面的图像;一个创建一个删除,从而产生在图形堆栈中移动的效果。

我曾考虑将图像沿 z 轴向前移动,这样它就看不见了,但我读过该对象必须是 instatiated 而不是 Transformed

我在具有代码的图像上有一个 Rigidbody2d 和 (2x) 3D Box Collider。一个在左边,一个在右边

删除按钮是一种享受,只是为了检查我对盒子碰撞器没有问题我已经尝试过另一个按钮上的删除代码也可以正常工作,所以我得出的结论是代码在某些方面存在缺陷

我的问题是,一旦对象被删除,我似乎无法重新创建它,我的理解是该对象不必存在于世界空间中就可以重新创建它。如果我使用四元数身份,我会收到一些关于游戏对象在屏幕外渲染的错误

***
          Instantiate(gameObject,new Vector3 (8,-17,11), 
// Removed until I can actually get the image to Instantiate
Quaternion.identity);
***

我也试过

***
 Instantiate(gameObject,new Vector (gameObject.transform.position.x -0.08, gameObject.transform.position.y, -0.17, gameObject.transform.position.z, 11), Quaternion.identity);

    }
 }
***

有人可以告诉我我做错了什么吗?

标签: unity3dtransform

解决方案


我对 Unity 也很陌生,但我相信您需要的是一个交换 Sprite 图像的按钮。

在层次结构中选择您的按钮。

在检查器中:

  1. 在Image组件中,拖入第一个Sprite
  2. 在按钮组件中:
  3. 选中复选框可交互
  4. 在过渡下拉菜单中选择 Sprite Swap
  5. 将第二个 Sprite 拖到“Selected Sprite”

推荐阅读