我制作了一个附有刚体组件的预制游戏对象。 每当我从检查器更改原始预制件的质量时,场景中存在的所有实例都会受到影响(该字段不会被覆盖)。但是当我尝试使用脚本做同样的事情时,实例的质量保持不变(只有主预制件受到影响,每次进入播放模式时,它都会保留以前的值!)。该脚本附加到另一个gameObject,如下所示:
using UnityEngine;
using System.Collections;
public class CubeScript : MonoBehaviour {
public GameObject largeCube; // dragged the original prefab in the inspector
private Rigidbody rb;
// Use this for initialization
void Start ()
{
rb = (Rigidbody) largeCube.GetComponent ("Rigidbody");
rb.mass = 44; // this is not changing the instances, rather only the main prefab. Note that the mass is not overridden
}
}
作为初学者,我不明白。请向我解释一下。
答案 0 :(得分:1)
我相信"申请"按钮负责将所有值应用于检查员级别的预制件实例。从脚本中,您需要手动完成(您没有任何名为&#34的按钮或方法;应用")。
我认为最好的(也是最有效的)是为预制件创建标签和使用
GameObject[] myPrefabInstances = GameObject.FindGameObjectsWithTag("yourTagName").
然后:
foreach (var go in myPrefabInstances)
{
var rb = (Rigidbody) go.GetComponent ("Rigidbody");
rb.mass = 44;
}