首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么我的脚本找不到非活动的GameObject,而它应该找到?

可能的原因是非活动的GameObject在脚本执行时被Unity引擎忽略了。Unity默认情况下只会在场景中激活的GameObject上执行脚本。要解决这个问题,你可以尝试以下几种方法:

  1. 使用GameObject.Find()方法来查找非活动的GameObject。这个方法可以通过传入GameObject的名称来查找,不受激活状态的限制。例如:
代码语言:txt
复制
GameObject obj = GameObject.Find("ObjectName");

然后你就可以对找到的GameObject进行操作了。

  1. 使用Transform.Find()方法来查找非活动的GameObject。这个方法是在Transform组件上的方法,可以通过传入子对象的相对路径来查找非活动的GameObject。例如:
代码语言:txt
复制
Transform child = transform.Find("ParentObject/ChildObject");

这样你就可以获取到非活动的子对象的Transform组件,进而可以对其进行操作。

  1. 如果你需要在脚本中频繁地操作非活动的GameObject,可以考虑将它们设置为激活状态,完成操作后再将其设置为非激活状态。这样可以确保脚本能够正常访问到它们。

需要注意的是,以上方法都是通过名称或路径来查找GameObject,因此确保你输入的名称或路径是正确的。另外,如果你的脚本是在场景加载时执行的,确保非活动的GameObject已经被加载到场景中。

推荐的腾讯云相关产品:腾讯云游戏多媒体引擎(GME)。GME是一款面向游戏开发者的多媒体解决方案,提供了语音通话、语音消息、语音识别等功能,适用于游戏中的实时语音交互场景。产品介绍链接地址:https://cloud.tencent.com/product/gme

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

unity官方案例精讲(第三章)--星际航行游戏Space Shooter

resetTransform组件。 (2)添加Rigidbody组件:用途是通过脚本来为飞船添加作用力,此外不希望飞船受重力影响下坠,取消Use Gravity选项。...,没有勾选Is Kinematic选项,unity5中不再支持Kinematic刚体Convex网格碰撞体) (4)添加飞船尾部火焰粒子效果:在project面板中,Assets/Perfabs/...,由background决定其xz坐标值 在脚本中创建一个Boundary类用于管理飞船活动范围,在PlayerController类中添加一个Boundary实例。...若飞船左右倾斜,则需要绕z轴旋转,往左移动时候,x轴方向上速度为负值,此时旋转角度(逆时针)应该为正值,所以需要乘以一个负数。  ...,需要找到GameController对象,在得到绑定在上面的GameController脚本 private void Start() { GameObject go

3K30

Unity3D学习笔记1——绘制一个三角形

不过这也是国内大多数书籍通病了,更像是作者对知识总结不是成体系向读者介绍知识。建议初学者看这本书一定要实操,喜欢头脑风暴同学不适合这本书。...概述 图形渲染技术第一个HelloWorld当然应该就是绘制一个三角形了。在绝大多数情况下,三角面是渲染物体基础图元。...GameObject对象是Unity3D中得一个基础类,Unity3D中得绝大部分对象都是基于实现,比如相机、灯光、或者模型等。...例如,这里挂接一个C#脚本,通过C#脚本来绘制物体,那么这个GameObject,表示就是一个渲染物体。 在"Project"视图中,通过右键菜单创建一个C#脚本: ?...场景树对象 在Start()函数中,首先我们找到了场景根节点Root,然后又通过调用GreateTriangle()函数,创建了一个三角形GameObject对象,最后把这个三角形对象挂接到Root对象下

1.3K30

“对不起,选择摸鱼”—《扫雷》小游戏开发实战,算法、源代码,基于Unity3D开发

大家好,是佛系工程师☆恬静小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。...一、前言 今天又是摸鱼...哦不..工作一天,今天整一个很经典Win系统自带游戏——《扫雷》,话说安装Win10之后就找不到《扫雷》游戏了,很难受。...单击一个地雷元素后,可以看到指示相邻地雷数量数字,也就是这个数字周围有这个数字数量,一共有9种情况: 因此,我们需要做就是计算每个字段相邻地雷数量,然后得出数字,如果没有相邻地雷...接着修改我们泛洪算法,这个算法应该发现访问元素是否是一个地雷,如果是的话就不应该继续下去: // 泛洪算法填充空元素 public static void FFuncover(int...,会遍历就寻找周围是否存在没有地雷空元素: 2-8、判断是否已经找到所有地雷 接下来,需要判断玩家是否已经找到所有的雷,那么游戏就应该结束了。

1.1K31

Unity3D游戏开发初探—4.开发一个“疯狂击箱子”游戏

一、预备知识—对象”生“与”死“   (1)如何在游戏脚本程序中创建对象不是一开始就创建好对象?...}   这里我们将销毁游戏对象代码封装成了一个方法:DestroyGameObject(),首先通过GameObject.Find方法找到指定ID游戏对象,然后调用销毁游戏对象方法Destroy...音效呢,就上网随便找了个炮弹发射音效。(具体文件请下载附件中源码,找到Assets/Musics/) ?   ...注意,这里销毁方法参数是this.GameObject不是this!   (4)现在我们来编写InitScene脚本,这个是重点!编写完成后,把此脚本附加到Main Camera对象中!...这里需要注意是,小球坐标应该为摄像头位置,因为小球是从摄像头飞出去

1.6K40

基于对象和面向对象

所以面向对象编程概念发展,也进入了一个更动态化,更脚本新时代——基于对象。 现在应用最广基于对象语言,应该是JavaScript和Lua。...[image.png] JS原型链 在运行时候,如果调用一个对象任何方法或者成员,是找不到时候,就会顺着这条原型链挨个查找,看看链上对象有没有对应方法和成员属性,如果找到了就访问。...每个接口或多或少几个方法,可能会让你自己类变得面目全。...值得注意是这个Update()方法并不是定义在Script组件类型MonoBehaviour里完全只是一个单独公开方法。Unity引擎会使用反射方法来找到这个方法来调用。...Unity使用反射不是多态方式来设计这个Update()接口原因,实际上也是基于对象思想:方法应该是动态,是一个属性。

4.9K11

一键完成对话需求?这款插件你不能错过(Unity3D)

对话编辑器 对话管理器 对话管理器是您场景中一个GameObject协调所有的对话系统活动并保存对话系统运行时数据。...要使用这个触发器,组件GameObject应该有一个触发器碰撞器。...如果对话系统在摄像头角度预置中没有找到匹配子对象,则在场景中寻找一个名为xGameObject(游戏物体)。如果找到一个,它就把当作一个绝对相机位置。...Multi Active Saver r 保存多个游戏对象活动/活动状态。 Animator Saverr 保存GameObject 's animator状态。...Enabled Saver r 保存组件启用/禁用状态。如果GameObject启动为活动状态,则将此组件添加到保证为活动不同GameObject中,并分配目标组件。

4.5K20

【学习笔记】Unity3D官方游戏教程:Survival Shooter tutorial

一、前言 刚开始学习 Unity3D 游戏开发,没什么资料,看了官方视频教程,感觉还不错。不过,对于新手来说,莫过于实战能力提高了。学习完还应该动手写写代码,熟悉一些旧知识,掌握一些新东西。...GameObject上多个脚本开发 想,对于 GameObject 上使用单个脚本还是多个脚本这是新手很容易进入误区,刚开始总是认为一个 GameObject 只能添加或者只需要添加一个自定义...原来,在调用了 Destroy(GameObject) 之后,附在 GameObject Audio Source 音频组件也就销毁了,治疗效果音频播放自然也就停止了。...在看视频教程时候,总是不明白为什么需要在速度后面再乘以 Time.deltaTime ,直接用速度不就可以了吗?...射线也困扰了很久,在学习了这个游戏教程之后,总算明白了基本原理:射线就是一条从一个点到另一个点不可见直线,它能检测到碰撞层中所碰撞到物体,并算出相应碰撞点。

2.7K50

unity3d 入门

找不到ms-vscode.csharp依赖 unity插件版本太老,可以修改extension目录中package.json依赖 .vscode\extensions\unity.unity-debug...(c盘权限问题) 异常捕获 vscode设置常用nullReference异常,可以在资源为空地方停止运行 package unity运行错误,提示文件asmdef文件找不到 在package...中搜索,找到后双击导入 asmdef文件:文件方式定义程序集,package右键文件夹import(源码在\library\PackageCache下,生成程序集在\library\ScriptAssemblies.../p/283752d80737 Assetbundle压缩打包资源,支持热更新 cs脚本脚本pulic成员unity editor component可见 GUI,通过unityOngui事件函数...只能创建,操作在Update中进行 打包 UnityEditor不能在打包项目中使用,否则无法打包 Unity中使用System.IO中DirectoryInfo打包会找不到路径 android目录

2.8K10

OO玩法:基于对象

所以面向对象编程概念发展,也进入了一个更动态化,更脚本新时代——基于对象。 现在应用最广基于对象语言,应该是JavaScript和Lua。...JS原型链 在运行时候,如果调用一个对象任何方法或者成员,是找不到时候,就会顺着这条原型链挨个查找,看看链上对象有没有对应方法和成员属性,如果找到了就访问。...虽然每个GameObject都可以带有不同Script(脚本)组件,但只要每个脚本有Update()方法,Unity就能在每次渲染时调用这个Update()方法。...值得注意是这个Update()方法并不是定义在Script组件类型MonoBehaviour里完全只是一个单独公开方法。Unity引擎会使用反射方法来找到这个方法来调用。...Unity使用反射不是多态方式来设计这个Update()接口原因,实际上也是基于对象思想:方法应该是动态,是一个属性。

1.1K40

如何用python制作3d游戏_【教程】12个步骤让你快速学会制作3D游戏

(保存场景),在文件夹中以[项目名称]- Assets形式保存场景。Assets是一个你为了存储场景和脚本事先创建好文件夹。...为了做到这一点,你需要依次在GameObject(游戏对象)中找到 Create Other 下 Cube(立方体)选项来添加。...你应该能够通过使用玩家附近箭头键来使之移动,与此同时相机视角也会按照你移动移动。 最后,保存场景和项目 步骤10:制作一些items 创建一个新GameObject.(游戏对象)。...这应该是一个独立部分,就像 voidOnTriggerEnter(Collider other){ if (other.gameObject.tag == “item”) {other.gameObject.SetActive...在OnTriggerEnter()函数下编辑Player脚本,使玩家知道他撞到是一个hazard不是一个item,同时它还能统计录玩家撞到hazard次数。

3.2K10

C#脚本实践(二): Unity脚本机制分析

目前了解到使用Mono做脚本只有Unity和SecondLife, SpringEngine也有个扩展实现....当然, 最成熟还是Unity 于是下载了一个看看脚本是怎么应用 编辑器界面很简洁, 实际操作了一下才发现所有的功能其本上都是由inspector面板完成 所有的GameObject都是由Component..., 也是为什么使用.net开发编辑器原因之一 之前还一直在想Unity是怎么动态载入脚本, 因为mono里找到一个mono_domain_assembly_open函数 在看了下测试工程文件夹结构...用Reflector查看了一下, 果然两个测试脚本都在其中: image.png 另外, UnityEngine.dll里类全是InternalCall声明, 这正好印证了上一篇C++导出到...Mono这边把需要暴露给脚本类/方法/变量都再声明一次(自动生成应该也是可行) 3. 定义脚本基类, 所有脚本对象都从派生 4.

1.2K20

Unity性能调优手册8UI:Canvas,Layout,RaycastTarget,Mask,TextMeshPro,UI显示

如果子画布中包含元素发生变化,则只会运行子画布重建,不会运行父画布。然而,仔细观察,当子画布中UI被SetActive切换到活动状态时,情况似乎是不同。...不知道为什么会发生这种行为细节,但似乎在切换活动状态时应该小心 UnityWhite 在开发ui时,我们经常希望显示一个简单矩形对象。这就是UnityWhite派上用场地方。...例如,如果不需要动态放置,例如根据内容改变放置位置文本,则不需要使用Layout组件。如果您确实需要动态放置,或者如果它在屏幕上大量使用,那么最好使用您自己脚本来控制。...人们普遍认为,如果可用,应该选择RectMask2d,但最近才启用Unity用户也应该小心使用RectMask2d。...如果你使用这个函数并将透明度设置为0,你可以隐藏其CanvasGroup 虽然这些方法有望避免由SetActive引起负载,但你可能需要小心,因为GameObject将保持在活动状态。

32130

Unity基础系列(一)——创建一个时钟(GameObjects与Scripts)

同时也会禁用网格显示,这个按钮在Scene窗口右上角,点击Gizmos 之后会出现一个下拉菜单。 小提问:为什么Game窗口会有一些黑色边距呢? 这种情况一般发生在高分辨显示器上。...当我们选中刚才添加clock之后,就可以看到包含一个带有名字头信息和一些配置选项。默认情况下,对象是启用static并且没有包含tag信息,并且属于default 层。...那么我们就把12个小时显示做出来。 我们通过GameObject → 3D Object → Cube方式,来创建一个立方体。...首先我们把刚才指示器设置rotation归0,然后创建一个新GameObjectposition 和rotation 为0 ,scale 为1。...(时针) 小提问:那个灯光图标去哪了? 移开了,省每次截图时候都会遮挡,因为代表平行光,就类似于太阳光,所以位置无关紧要。

2K10

漫步VR——Unity语音聊天室开发

虚拟现实技术是一种可以创建和体验虚拟世界计算机仿真系统利用计算机生成一种模拟环境是一种多源信息融合交互式三维动态视景和实体行为系统仿真使用户沉浸到该环境中。...2D是什么概念呢,还是举个例子:如果想要用键盘左右方向键控制动画左前右转,用上下键控制idle走和跑,那么可以用两个float变量分别控制两个方向动画,这就是2DBlendTree。...GameObject 1、如果是在场景中固有的GameObject,即将GameObject直接拖到Hierarchy中,在其他GameObject脚本中需要使用GameObject...一些属性是,尽量避免使用GameObject.Find(),而是在脚本中申明public GameObject;然后在Script直接赋值。...2、GameObjectSendMessage()方法,可以方便调用到绑定在GameObject脚本方法,但是调不到GameObject子物体上脚本

4K90

零基础入门 11: 通过脚本设置UGUI Image

我们先做好准备工作,在Unity里创建一个名为Resources文件夹,将名为IU图片, 拖进去。 ? 为什么要创建一个这样目录呢?...Path是资源路径。 ? 然后我们切回到Unity,运行模式下代码是不运行,我们运行项目,效果如下。可以看到,运行后,Image图片就已经被加载上并且显示了出来。 ?...Image.Color就是设置Image组件颜色。 切回Unity查看运行效果。 ? 我们通过new Color自定了颜色,那如果想改变透明度呢?...第二种方式,则是创建一个空GameObject,然后放到Canvas下,动态增加Image组件。 接下来我们删除脚本Image创建位置,UnityImage也删除掉。 ?...为什么会报错呢? 因为m_testImg是我们创建GameObject

5.5K50

一年前一篇关于学做unity游戏草稿,好像是忘推送了

今天登录发现有篇草稿是22写,那回应该还是疫情...看完又想动手做点什么了。 原文开始 “爸爸,不要你工作!” 这是在远程办公期间最常听见一句话。...为什么说它难,是因为结合ide和脚本语言,把资源、代码、工程化糅和在一块,按照设计模式封装了很多组件和通用方案,这样要理解起来就需要联想和发散。...类比cocos creatorcc.Node,Unity也有顶层对象,在脚本层面看就是GameObject这个类,任何在游戏中出现元素,其实在脚本层面都指向一个GameObject对象,这个对象下面挂载了各类组件...实现这一切需要基于一个顶层框架设计模式,Unity脚本默认会继承MonoBehaviour这个通用类,他会使组件置于顶层框架模式中,里面会约定好组件在生命周期内各种环节,并暴露相关回调方法:...庆幸是unity商店资源挺丰富,刚好赶上过年,商店在做虎年资源包活动,有两个39.9美元资源包非常划算(广告,现在已经没有了),都买下来了。

17710

零基础入门 9: Unity脚本生命周期

(固定值可调) Update(每帧调用) LateUpdate(延迟帧调用) OnEnable和OnDisable会在脚本反复激活和禁用时被调用,一次性调用生命周期函数。...此时GameObject上就有个这个TestSL脚本,然后我们运行游戏,查看日志输出顺序即可知道生命周期函数调用顺序。 ?...上图中,我们运行后发现,频繁日志不见了,目的达到了,但是为什么只有6条日志呢?明明我们脚本里输出了8句。...这次我们加入对GameObject对象隐藏和删除。 (为了不被我蓝色运行模式颜色影响大家看日志,所以我暂时还原回去了运行背景颜色。(゚ー゚)) ?...从上图我们可以看出,当我们对GameObject隐藏后,OnDisable就输出了,删除对象后,OnDestroy就输出了。 把全日志图放上来。 ? ?

94940

怎样在 Unity 中创建 UI

面板是 UI 组件中一个基本组件。之所以喜欢面板是因为你可以很容易地通过脚本打开或关闭不影响一整个 Canvas。这就允许你创建更多基于游戏状态动态改变 UI 组件了。...一般来说,当处理 UI 组件时候,更喜欢使用矩形转换工具来移动和调整组件大小: UI-5 把 text 组件放到任何你想放位置。放到了 Panel 组件水平和竖直中心。...找到 Text (Script) 属性里『Font Size』,讲鼠标悬于上面,然后按住不放,左右移动,你就会看到值会变大或是变小,设置一个你喜欢字体大小。...找到『Paragraph』属性选择对齐『Alignment』方式为居中。然后,选择右边垂直居中。 UI-6 界面如下: UI-7 你可能最先注意到我们在文本框中使用 tag。...为了让你通过一个按钮来调用一个函数,那么这个函数需要声明为 public,这就是为什么在『Manager』脚本中把所有函数设置为public。

5.6K20
领券