【发布时间】:2019-06-26 08:07:34
【问题描述】:
我有数组元素,我将它们放在一个空游戏对象上,我的意思是 [SerializeField] 并通过脚本添加(当然是 C#),所以这些对象并不是真正存在的,它们是在游戏开始时生成的。如何将 Empty GameObject 中的 Collider 克隆到克隆上以使其可点击?到目前为止,只有第一个有效的女巫也是空的 GameObject 的位置,上面有 colider 现在我也需要将它们放到克隆上......但是,......如何?
我尝试将碰撞器应用到精灵上,我什至尝试将它们变成预制件,这一切都毫无希望。我确实认为它必须在脚本上,但我找不到它的代码示例....
public class Controll : MonoBehaviour {
public const int gridRows = 6;
public const int gridCols = 6;
public const float offsetX = 1.70f;
public const float offsetY = 0.97f;
[SerializeField] private GameObject[] cardBack;
[SerializeField] private GameObject[] positioner;
public AudioSource sound;
public void OnMouseDown()
{
if (Input.GetMouseButtonDown(0))
{
sound.Play();
}
}
//AudioSource audioSource;
// Use this for initialization
void Start ()
{
// audioSource = GetComponent<AudioSource>();
Vector3 startPos = positioner[0].transform.position;
for (int i = 0; i < gridRows; i++)
{
for (int j = 0; j < gridCols; j++)
{
var position = transform.position + new Vector3(offsetX * j, offsetY * i * -1, -0.1f);
Instantiate(cardBack[i], position, Quaternion.identity, transform);
}
}
}
我需要能够点击这些元素,以便当我点击并消失时它们会播放声音......
【问题讨论】:
-
怎么样?我提到我试过了,但没有希望......如果......如果......我没有得到任何代码示例,那么我不知道如何......
-
用所有东西、碰撞器、脚本等设置预制件,然后它与碰撞器一起使用。这里没有足够的人告诉你什么是错的,所以这里不是为你一步一步地写一个如何。
-
这不是女巫会做的事。 1.)我很久以前尝试过 2.)只有在播放模式运行期间才有克隆女巫,否则它将不存在 3.)@BugFinder 有多少人可以提供帮助并不重要,重要的是几乎每个人都像我一样有更多的经验,一定有人对此有答案............因为每个有经验的 Unity 用户都必须处理这个问题
-
好吧..脚本和碰撞器可以并且确实经常在预制件上进行设置..您可以在运行时添加组件,但当然您已经阅读并尝试过..但如果它有效对于 1 项而不是其余项,那么您需要弄清楚为什么不这样做.. 该数组特别不应该与实际的游戏对象无关
标签: c# arrays unity3d element gameobject