问题标签 [gameobject]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
12768 浏览

unity3d - MissingReferenceException:“GameObject”类型的对象已被破坏,但您仍在尝试访问它(错误)

我有一个问题,我一直试图找出几个说,我似乎无法确定它的原因!我创建了一个第一人称射击游戏,它在一张小地图上由几个敌人组成。我有两个场景(主菜单和游戏关卡)。当我的玩家死亡时,它会进入主菜单,您可以从中选择再次玩游戏。然后再次重新加载关卡。第一次运行游戏时,它运行没有任何问题。但是,当我这样做并再次按下播放游戏按钮时,它会向我返回一条消息,其中指出以下内容“MissingReferenceException:'GameObject' 类型的对象已被破坏,但您仍在尝试访问它。” 从下面的代码中,我只能看到两种类型的 GameObject。我试图移除 muzzleFlash 以查看这是否是问题,但它没有任何区别。当我读到这可能是问题的原因时,我已经取消了所有静态框,但这并没有解决问题。下面的这个脚本附加到一个敌人,我有一个附加到 FPS 的 PlayerShot 脚本。请问有人可以帮忙吗?

这是破坏游戏对象的 PlayerShot。

与 BasicAI 一起附加到敌人的脚本是用于破坏游戏对象的 SoldierShot 脚本。下面是脚本。

0 投票
1 回答
13173 浏览

c# - 无法更改附加到游戏对象的脚本上的公共变量。值在播放时恢复

这是我的第一个问题。一直没能找到关于这个话题的任何东西。

我想创建一个编辑器脚本来更改附加到游戏对象的脚本中的许多公共布尔值。

我将此脚本附加到游戏对象。GameObject 是一个预制件:

这是我的编辑器脚本:

脚本工作正常,游戏对象上的布尔值在编辑器中正确设置。但是当我按下 PLAY 按钮时,两个 bool 的值会切换回它们在应用脚本之前的值。

预制件的值是什么并不重要,这些值只是在应用编辑器脚本之前恢复到值。

我做错了什么还是一个错误?

如果我应用编辑器脚本,将场景另存为新场景,然后打开新创建的场景,值也是错误的。

但是,如果 GameObject 不是预制件,一切都可以完美运行,并且即使在启动播放模式之后,这些值也会保持编辑器脚本给出的值。

所以问题只存在于使用预制件时。

0 投票
2 回答
2353 浏览

unity3d - 通过 Application.LoadLevel 加载的场景中的脚本不起作用

我创建了简单的 Unity 应用程序,允许加载从 Internet 下载的不同场景。如果场景不包含任何脚本,它会很好用。如果有与 GameObject 连接的脚本,则会失败并出现错误:

如果该场景作为单独的应用程序脚本启动没有任何问题,但如果该场景是通过 BuildPipeline.BuildStreamedSceneAssetBundle 保存的,我已经得到描述的错误。

我通过简单的代码加载场景:

主脚本留在场景中,因为我为此调用了 DontDestroyOnLoad

我通过 Unity3D 3.5.0 和 3.5.1 检查了这个场景

我在哪里做错了?

非常感谢。

0 投票
1 回答
1351 浏览

unity3d - Unity3D与父级的局部位置关系

我正在尝试相对于它的父对象定位一些游戏对象。我正在使用本地位置,但游戏对象放置得不好。如果我使用本地位置,父母的宽度被认为是1,对吧?因此,如果我有一个平面,unity3d 认为它是一个 1X1 正方形。
我尝试将一些模型放在本地位置 (1, 1),但它们没有放在平面的右上角......
你们有没有一些想法可能是什么问题?

0 投票
1 回答
452 浏览

unity3d - 具有 DirectionalLight 组件的 GameObject 未被照亮

我正在使用 Unity3D 和 Vuforia 做一个增强现实应用程序。
对于我的增强现实场景中的每个游戏对象,我都会向它添加一个 Light 组件并将其定义为 DirectionalLight。在这个场景中,游戏对象被照亮,但是当我切换到另一个场景(不破坏游戏对象)时,它们没有。
我已经检查过了,他们仍然有 Light 组件,但由于某种原因没有被照亮。
你们有什么线索可能是什么问题吗?

PS:第二个场景是正常场景,与手机摄像头没有互动。并且相机上的投影是正交的。

0 投票
1 回答
1517 浏览

c# - 拍摄时有时会出错

MissingReferenceException:“GameObject”类型的对象已被销毁,但您仍在尝试访问它。您的脚本应该检查它是否为空,或者您不应该销毁该对象。UnityEngine.Object.Internal_InstantiateSingle (UnityEngine.Object data, Vector3 pos, Quaternion rot) (at C:/BuildAgent/work/d9c061b1c154f5ae/Runtime/ExportGenerated/Editor/UnityEngineObject.cs:44) UnityEngine.Object.Instantiate (UnityEngine.Object original , Vector3 位置, 四元数旋转) (在 C:/BuildAgent/work/d9c061b1c154f5ae/Runtime/ExportGenerated/Editor/UnityEngineObject.cs:53) Gun.Update () (在 J:/WAR/Assets/Scripts/Gun.cs: 16)

这就是我得到的错误,这里是我的枪类代码

0 投票
1 回答
34622 浏览

unity3d - 将着色器添加到游戏对象

如何将着色器添加到游戏对象?a 在这里定义了一个着色器:

(我正在尝试做同样的事情并且遇到了一些问题):http ://answers.unity3d.com/questions/175692/getpixelsetpixels-or-stencil-eraser-brush.html

和2个texture2D在代码中定义并通过Resource.Load加载,分配给一个游戏对象。如何将着色器应用于我的游戏对象并与两个纹理进行通信?

如您所见,我的着色器中有这段代码

我如何告诉着色器谁是主要纹理和模板纹理?

0 投票
4 回答
22628 浏览

c# - 如何将游戏对象放入列表中?

我有游戏对象,我需要将它们放入列表中,如下所示:

List<GameObject> unityGameObjects = new List<GameObject>();

0 投票
2 回答
4390 浏览

unity3d - 在统一 3d 中销毁游戏对象

在 unity3d 我宣布

在启动功能中,我使用了代码

显示错误“不允许销毁资产以避免数据丢失。如果您真的想删除资产,请使用 DestroyImmediate (theObject, true);”

我怎样才能摧毁这个游戏对象?

提前致谢

0 投票
2 回答
1049 浏览

c# - 尝试在脚本中将孩子设置为我的游戏对象时发生错误

当我在游戏模式下测试我的游戏时,上面的代码生成了预期的结果,但是我收到了这个错误消息:

“设置驻留在预制件中的转换的父级被禁用以防止数据损坏。”

是的,spawnObject 变量包含一个预制件,但是我认为创建一个新的 GameObject 应该可以解决问题?