【发布时间】:2018-05-26 02:37:43
【问题描述】:
绿球寻找白球并“感染”它们。白球被破坏了,但它们又回到了原点。我试图对白球的位置进行变量,但我一直遇到“无法将转换转换为 Vector3”错误。
public Rigidbody prefabInfection;
public Transform infectLocation;
void OnCollisionEnter(Collision colInfo)
{
if (colInfo.collider.tag == "Infection")
{
Destroy(gameObject);
Instantiate(prefabInfection);
}
}
这是当前用于碰撞的代码。
我也是 Unity 的新手。我不应该破坏白球而是以某种方式将它们变成绿球吗?这可能吗?
实例化似乎是唯一的方法。我想做的就是将白色的“人类”球替换为绿色的“感染”球。
【问题讨论】:
-
“我不应该破坏白球而是以某种方式将它们变成绿球吗?这可能吗?”是的,你应该这样做。要么使用对象池的启用/禁用方法(如果您计划将来用实际模型替换球,则需要这样做)unity3d.com/de/learn/tutorials/topics/scripting/object-pooling 或切换他们的共享材料docs.unity3d.com/ScriptReference/Renderer-sharedMaterials.html