【发布时间】:2018-02-26 12:45:17
【问题描述】:
我正在开发一款爆破/模拟器类型的游戏。我正在研究基础知识,但我的脚本似乎不起作用。脚本的想法是,如果对象遇到足够“硬”的力,它将被该对象的破坏版本所取代。它适用于小型结构。但是当结构变得更大而不是产生 1 个被破坏的对象时,它似乎产生了更多的 waaaayy。因此游戏开始滞后。我认为这是因为一些物体撞击了其他物体。当我通过点击摧毁它们时不会发生,只有当它们相互撞击时 希望任何人都可以提供帮助。
这是代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Destructible : MonoBehaviour {
public GameObject debrisPrefab;
void OnCollisionEnter( Collision collision )
{
if (collision.relativeVelocity.magnitude > 3f)
{
Destroy(gameObject);
Destroy();
}
}
void OnMouseDown()
{
Destroy(gameObject);
Destroy();
}
void Destroy()
{
if (debrisPrefab)
{
Instantiate(debrisPrefab, transform.position, transform.rotation);
}
Destroy(gameObject);
}
}
【问题讨论】:
-
究竟什么是“结构”?
-
几个可破坏的块一起堆叠在一起
-
这些块中的每一个都附加了
Destructible脚本组件,对吧?为什么即使在OnMouseDown上也将块更改为碎片? -
如果我想看看会发生什么,它可能很有用,是的,所有块都附有这个脚本
-
问题是每次点击游戏窗口,所有
Destructible游戏对象都会变成碎片。除非您的问题在其他地方,否则您应该通过深入解释“当结构变大时它似乎产生更多”的意思来完善您的问题