隐藏的上班玩游戏怎么隐藏找

9964人阅读
【Unity3D游戏开发】(48)
GameObject.Find()、Transform.Find查找游戏对象
1.前置条件
Unity中常用到查找对象,非隐藏的、隐藏的,各种方法性能有高有低,使用又有各种条件限制。
在此对查找的性能和条件进行分析。开发时遇到的主要问题是查找隐藏对象。
没有完美的查找方法,只有最合适的查找方法
最后附带上测试代码
GameObject.Find
Transform.Find
GameObject.FindWithTag
GameObject.FindGameObjectsWithTag
Resources.FindObjectsOfTypeAll
2.1 GameObject.Find
通过名字或路径查找游戏对象。
GameObject.Find("GameObject");
GameObject.Find("GameObject/ChildGameObject);
1.无法查找隐藏对象
隐藏对象包括查找路径的任何一个父节点隐藏(active=false)
2.如果查找不在最上层,建议合理使用路径查找,路径查找是把双刃剑
优点1:解决查找中可能出现的重名问题。
优点2:如果有完全的路径,减少查找范围,减少查找时间。
缺点: 路径或结构调整后,容易影响到程序中的查找,需要重新定位查找路径。
3.如果路径查找中的任何一个父节点active=false,这个对象都将查找不到。
4.使用方便但效率低下
此查找相当于递归遍历查找,虽使用方便但效率堪忧,建议在Start()函数中查找对象并保存引用,切忌在Update()中动态查找。
2.2 Transform.Find
1.可以查找隐藏对象
2.支持路径查找
3.查找隐藏对象的前提是transform所在的根节点必须可见,即active=true
GameObject root = GameObject.Find("root")
root.SetActive(false)
// 总是查找失败
root.transform.Find("root/AnyChildObjectName")
实际开发中会将功能预制体放到一个可见的GameObject目录下,将这个GameObject目录作为查找根节点,下面的所有对象(隐藏、非隐藏)都可以查找到。
你可以把”map”节点放在一个active = true的MapRoot上,无论是关闭 或者 显示 代码中写起来都很方便。 假如你的map节点就是顶级节点,那么它一旦天生acive = false ,那么你将无法得到它的对象,更无法设置它的属性了。
GameObject root = GameObject.Find("MapRoot")
GameObject map =
root.transform.Find("map").gameObject
map.SetActive(true)
2.3 其他查找
GameObject.FindWithTag
GameObject.FindGameObjectsWithTag
使用极少,并无卵用
Resources.FindObjectsOfTypeAll
返回指定类型的对象列表。主要用于编辑器中,eg。检测内存泄露、批量查找的功能等
3 实际测试
目录结构如下,绿色代表现实,红色代表隐藏
void Start () {
GameObject.Find("A11");
GameObject.Find("A21");
GameObject.Find("A22");
GameObject.Find("A31");
GameObject.Find("A32");
GameObject.Find("A33");
GameObject.Find("A34");
GameObject.Find("A34");
GameObject.Find("/A34");
GameObject.Find("/A11/A22/A34");
GameObject.Find("A11/A22/A34");
GameObject.Find("/A22/A34");
GameObject.Find("A22/A34");
Transform A11 = transform.Find("A11");
Transform A21 = transform.Find("A21");
Transform A22 = transform.Find("A22");
Transform A31 = transform.Find("A31");
Transform A32 = transform.Find("A32");
Transform A33 = transform.Find("A33");
Transform A34 = transform.Find("A34");
Transform AA31 = transform.Find("A21/A31");
Transform AA32 = transform.Find("A21/A32");
Transform AA33 = transform.Find("A22/A33");
Transform AA34 = transform.Find("A22/A34");
Transform AA311 = transform.Find("A11/A21/A31");
Transform AA321 = transform.Find("A11/A21/A32");
Transform AA331 = transform.Find("A11/A22/A33");
Transform AA341 = transform.Find("A11/A22/A34");
Transform AA3111 = transform.Find("/A11/A21/A31");
Transform AA3211 = transform.Find("/A11/A21/A32");
Transform AA3311 = transform.Find("/A11/A22/A33");
Transform AA3411 = transform.Find("/A11/A22/A34");
4 即使隐藏root节点gameObject也能进行查找的方法
找到了一个即使隐藏root节点gameObject也能进行查找的方法。
GameObject[] pAllObjects = (GameObject[])Resources.FindObjectsOfTypeAll(typeof(GameObject))
foreach (GameObject pObject in pAllObjects)
if (pObject.transform.parent != null)
if (pObject.hideFlags == HideFlags.NotEditable || pObject.hideFlags == HideFlags.HideAndDontSave)
if (Application.isEditor)
string sAssetPath = AssetDatabase.GetAssetPath(pObject.transform.root.gameObject)
if (!string.IsNullOrEmpty(sAssetPath))
Debug.Log(pObject.name)
参考文章:雨凇Unity获取游戏对象详解
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:720368次
积分:7946
积分:7946
排名:第1630名
原创:104篇
转载:117篇
评论:147条
(1)(8)(10)(4)(5)(2)(13)(7)(2)(10)(16)(10)(2)(2)(3)(3)(6)(2)(8)(10)(3)(7)(17)(7)(1)(4)(8)(13)(9)(4)(1)(8)(11)(1)(1)GTA5小富隐藏女友具体位置在哪里_GTA5找隐藏女友方法
作者:佚名
字体:[ ] 来源:互联网 时间:04-30 15:56:52
GTA5小富隐藏女友具体位置在哪里_GTA5找隐藏女友方法。一起跟随小编过来看看吧
GTA5小富隐藏女友在哪?很多玩家苦于找不到小富最终隐藏大学女友莉兹,下面和小编一起看看GTA5找隐藏女友方法吧!
接到任务后用拳头打莉兹男友切记不要打死就OK了 网上介绍的地点也是很模糊没有坐标 本人辛苦做出租任务终于找到了
位置是高尔球场上方
找隐藏女友方法:
买下计程车公司下午3点多到那里等电话任务女友必出 这些买下的产业随机任务几乎一星期一回所以没买产业的最好先只买计程车行这样人物比较好做 说太多了我把坐标分享给没找到的玩家 希望别像我找的很久
PS:其实女友还有厄修拉 4舞女妮琦 篮宝儿 魔魔 朱丽叶,更多GTA5女友攻略(啪啪啪全面指南)小编即将整理发布,请持续关注游民星空GTA5专区,敬请期待!
隐藏女友位置:
以上就是小编分享给大家的全部内容了,希望能给大家一个参考,更多游戏专题攻略敬请关注脚本之家游戏栏目。
大家感兴趣的内容
12345678910
最近更新的内容你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
隐藏的游戏物体用Find查找会返回Null,查询不到此物体。
那如何用把隐藏的游戏物体查找并SetActive为true呢
你可以在代码中设置一个public Gameobject xxx
然后把这个已经影藏的物体拖进去
然后在你要让他显示的时候 setactive true
你先构建一个根GameObject,比如叫rootObj。
动态加载的物体都添加到rootObj里面。
1.要寻找的时候,通过rootObj.transform.Find("相对路径名")来找到它。
2.如果层次很多不想写相对路径就写一个公共方法来遍历查找:
public static Transform Find(Transform target, string name)
if (target.name == name)
for (int i = 0; i < target.childC ++i)
Transform result = Find(target.GetChild(i), name);
if (result != null)
要查找的时候通过Find(rootObj.transform,"名字")来找到它。
在ObjPool里面就是先创建一堆对象,隐藏起来,用的时候直接显示。其实还是在ObjPool里面保存下来的,用的时候去取。上面他们也没有说错。动态加载也是这样的啊
物体首先为true
然后通过代码在awake中设置为false
当你需要使用的时候再次设置为true就行
隐藏的物体 可以找它的为true的父节点 然后通过父节点transform.find()就这可以找到隐藏的了
默认设置成True,然后获得到对象,然后再隐藏。然后就可以用刚才的对象进行显示或隐藏了。记得点赞,
tranform.find
要回复问题请先或
如:80后IT男..
浏览: 2428
关注: 9 人如何隐藏游戏_百度知道
如何隐藏游戏
可以排除他是用名字搜索的,无论是修改路径还是属性隐藏都不行,安装后.下了游戏。求大神手把手教我.,我爸总能发现
这样的话你安装的游戏就不会写入在注册表,必须是下载免安装绿色硬盘版:下载游戏的时候不要下载那些安装版的,那样的话他找出你游戏的原因很可能是在控制面板-卸载程序那里。解决方法首先你安装的路径不要放的太前,根据安装时间,你爸删游戏没删安装包,然后他也不能在卸载程序那里找到你的游戏了,这个不用我说了。还有根据我猜测,瞬间就能找出你近期安装的程序了
你好,我没有发现卸载程序啊T T我是w7的由于这个游戏很大,我估计应该是没有绿色的..u盘拷可以吗?请问这个是否与360安全卫士和360驱动大师有关呢?
没有发现卸载程序的话…请问你是在哪里查看的?既然你下载的是安装包,正常来说都会写入注册表,即使在控制面板那里没找到,或者腾讯电脑管家、360安全卫士之类的还是能找到的。还有是否有绿色免安装版跟游戏大小无关,主要看有没有人弄出来而已,你可以百度一下你玩的游戏有没有免安装版。U盘拷的游戏不是说不可以,但是治标不治本,你都说游戏很大,每次复制来复制去要消耗多少时间…至于如果你想直接在U盘上运行,我建议还是不要,目测没多久U盘就不能用了,运行游戏期间要不断加载游戏数据,数据流量是很大的。
其他类似问题
53人觉得有用
为您推荐:
其他6条回答
下载完后用360清除痕迹,也可以下个文件夹加密程序,这个有点麻烦百度吧,游戏装在上面╮(╯_╰)╭如果是用控制面板 添加或删除程序删除掉的好吧,直接把游戏文件设上密码,最简单的方法买个移动硬盘或者好点的U 盘,需要修改禁止访问注册表。不知道用什么方法找到就没办法防
请问如何用360清除痕迹呢& &
有U盘吗?可以保存在优盘上,再把电脑上的卸载,没有优盘的话,只要有文件,藏的再深都会被发现的,因为“搜索”一功能在电脑上只要有,一定会被搜索到, 没有优盘,你可以存在手机卡上,每次插手机从电脑上玩,存相机卡上,插上读卡器玩(这两种方法只在电脑上访问有效,而且要在储存卡上安装好哦!)
建一个隐藏文件夹,把存档放这里.开机器安游戏,关机前卸游戏.嫌麻烦,建一个隐藏分区,设为不可看,安这里.
你是想隐藏文件吗?你说属性隐藏会被发现,那只能加密文件了,点右键将文件压缩并设置密码。记得删除源文件。再隐藏更安全。或者使用360文件堡垒,超级兔子,优化大等等。PS:超级兔子可以把文件伪装。
要是我爸发现了想删除结果发现有密码,我觉得他可能会更生气啊T T....
下个腾讯管家就可以了
下了之后怎么办呢?
那里面有个隐藏软件的功能
自己看看了
就可以想把你隐藏的东西给隐藏
360安全卫士
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 寻找隐藏的图形游戏 的文章

 

随机推荐