无法删除使用实例化功能制作的克隆
Unable to delete clones made with instantiation function
我做了一个游戏,我在几个圆圈中生成,这些圆圈会随着时间的推移而缩小,直到它们应该消失。问题是,我用实例化函数制作了所有的圆圈。这会创建 "Ball(clone)" 并且每当我尝试使用 Destroy(GameObject) 摆脱其中一个时,我都会收到以下错误。
Can't destroy Transform component of 'Ball(Clone)'. If you want to destroy the game object, please call 'Destroy' on the game object instead. Destroying the transform component is not allowed.
需要说明的是,球的创建是由附加到空子的一个脚本处理的,销毁是附加到球的另一个脚本。它们如下。
var Xpos : float;
var Ypos : float;
var Ball : Transform;
//Place ball
function Update ()
{
if (Input.GetMouseButtonDown(0))
{
//debugging
Xpos = Input.mousePosition.x;
Ypos = Input.mousePosition.y;
//Get mouse input and convert screen position to Unity World position
var position : Vector3 = Camera.main.ScreenToWorldPoint(Input.mousePosition);
Instantiate(Ball,Vector3(position.x,position.y,1),Quaternion.identity);
}
}
//删除球
#pragma strict
var Ball : Transform;
function Update ()
{
Ball.animation.Play("Shrink");
}
function Despawn ()
{
Destroy(Ball);
}
错误消息说明了一切;你不能 Destroy()
转换。您必须将其应用于 GameObject。
更改为 Destroy(Ball.gameObject);
应该可以实现这一点。
我做了一个游戏,我在几个圆圈中生成,这些圆圈会随着时间的推移而缩小,直到它们应该消失。问题是,我用实例化函数制作了所有的圆圈。这会创建 "Ball(clone)" 并且每当我尝试使用 Destroy(GameObject) 摆脱其中一个时,我都会收到以下错误。
Can't destroy Transform component of 'Ball(Clone)'. If you want to destroy the game object, please call 'Destroy' on the game object instead. Destroying the transform component is not allowed.
需要说明的是,球的创建是由附加到空子的一个脚本处理的,销毁是附加到球的另一个脚本。它们如下。
var Xpos : float;
var Ypos : float;
var Ball : Transform;
//Place ball
function Update ()
{
if (Input.GetMouseButtonDown(0))
{
//debugging
Xpos = Input.mousePosition.x;
Ypos = Input.mousePosition.y;
//Get mouse input and convert screen position to Unity World position
var position : Vector3 = Camera.main.ScreenToWorldPoint(Input.mousePosition);
Instantiate(Ball,Vector3(position.x,position.y,1),Quaternion.identity);
}
}
//删除球
#pragma strict
var Ball : Transform;
function Update ()
{
Ball.animation.Play("Shrink");
}
function Despawn ()
{
Destroy(Ball);
}
错误消息说明了一切;你不能 Destroy()
转换。您必须将其应用于 GameObject。
更改为 Destroy(Ball.gameObject);
应该可以实现这一点。