gpt4 book ai didi

c# - 通过脚本更改预制实例

转载 作者:太空宇宙 更新时间:2023-11-03 12:55:19 27 4
gpt4 key购买 nike

我制作了一个带有刚体组件的预制游戏对象。 每当我从检查器更改原始预制件的质量时,场景中存在的所有实例都会受到影响(该字段未被覆盖)。但是当我尝试使用脚本做同样的事情时,实例的质量保持不变(只有主预制件受到影响,每次我进入播放模式时,它都会保留其先前的值!)。该脚本附加到另一个游戏对象,如下所示:

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

}

}

初学者不懂。请向我解释一下。

最佳答案

我相信“应用”按钮负责在检查员级别将所有值应用到预制件实例。从脚本中,您需要手动执行(您没有任何名为“应用”的按钮或方法)。

最好的(我认为也是最有效的)是为预制件创建标签并使用

GameObject[] myPrefabInstances = GameObject.FindGameObjectsWithTag("yourTagName"). 

然后:

foreach (var go in myPrefabInstances) 
{
var rb = (Rigidbody) go.GetComponent ("Rigidbody");
rb.mass = 44;
}

关于c# - 通过脚本更改预制实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34105340/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com