Unity如何js获取对象的属性被禁用的对象

unity怎么实现按一下某个键禁用一个对象,再按一下激活这个对象【unity3d吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:86,683贴子:
unity怎么实现按一下某个键禁用一个对象,再按一下激活这个对象收藏
类似开关那种效果,求大神指点
自己写事件监听方法啊。。。
比如:private bool switcher =private void Switch(){
switcher = !}这样,这个Switch每运行一次,switcher的布尔值就会反一次
?真:假,和写暂停游戏脚本一个逻辑
登录百度帐号【转载】Unity获取未激活游戏对象的方法 - 重新定义自己 - 博客园
随笔 - 1, 文章 - 2, 评论 - 0, 引用 - 0
一、获取已激活游戏对象
1、 &Gameobject.Find("游戏对象名") &//根据对象名直接获取游戏对象
& 这个方法可以找到指定的对象,但是一些缺陷。第一,如果场景中有重名,此方法找到的是Hierarchy从上至下第一次出现此对象名的对象。第二,如果对象的activeSelf为false,那么这个方法永远无法找到对象。
1.1、 &解决上述第一个问题(重名)的方法:
& Gameobject.Find("Parent/Son/游戏对象名") &//通过路径找,路径间用 / 隔开
1.2、 &解决第二个问题:
& Transform.Find("游戏对象名") &
& 这个方法可以找到对象的位置,无论对象激活与否
& 可以先找到对象的根节点,然后在根节点里使用方法(此方法只能找子节点):
& GameObject &root &= &&GameObject.Find("根节点");
& GameObject &son &= & root.transform.Find("对象名").gameO
& 若根节点下还有父节点,同样可以用使用路径找到。
二、通过tag标签找对象
& GameObject&FindGameObjectsWithTag("tag")
& GameObject.FindWithTag("tag")
参考自yusongmomo的文章,感谢!没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!扫一扫,访问微社区
后使用快捷导航没有帐号?
签到成功!您今天第{todayrank}个签到,签到排名竞争激烈,记得每天都来签到哦!已连续签到:{constant}天,累计签到:{days}天
关注:1369
当前位置: &
查看: 1870|回复: 59
获取场景中所有对象的方法
71645/5000排名<font color="#FF昨日变化2主题帖子积分
日久生情, 积分 1645, 距离下一级还需 3355 积分
日久生情, 积分 1645, 距离下一级还需 3355 积分
在线时间632 小时
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
才可以下载或查看,没有帐号?
本帖最后由 mishimumu 于
23:02 编辑
最近做一个编辑器,涉及到获取场景中对象,获取的对象可能是隐藏的,看了下api,发现了这个Resources.FindObjectsOfTypeAll,可以获取所有加载进场景的东西,包括预设,材质等等。实际测试的时候发现还获取了一些场景默认自带的不显示在层次面板上的对象。所以需要剔除到,用到的几个判断:
(1)HideFlags.None来剔除场景默认隐藏的物体
(2)obj.Scene.name来剔除非场景物体,因为包括一些预设等
(3)transform.parent为空,因为我要的最上面的父对象
代码如下:
using UnityE
using System.C
using UnityE
using UnityEngine.SceneM
public class SelectionEditorDataInspector : Editor {
& & [MenuItem(&Tool/New场景1&)]
& & static void NewSelectionTest1()
& && &&&GameObject[] objs= (GameObject [])Resources.FindObjectsOfTypeAll(typeof(GameObject));
& && &&&foreach(var obj in objs)
& && && && &if (obj.hideFlags==HideFlags.None && obj.transform.parent == null && obj.scene.name== &xxx&)
& && && && &{
& && && && && &/ /todo
& && && && &}
后面同事还推荐了另外个方法,更好用点,只是无法获取HideFlags部分类型的物体,一般的够用了
游客,如果您要查看本帖隐藏内容请
每日推荐:
4317/500排名<font color="#FF昨日变化1主题帖子积分
四处流浪, 积分 317, 距离下一级还需 183 积分
四处流浪, 积分 317, 距离下一级还需 183 积分
在线时间79 小时
每日推荐:
17/50主题帖子积分
注册看看, 积分 7, 距离下一级还需 43 积分
注册看看, 积分 7, 距离下一级还需 43 积分
在线时间1 小时
没懂,好像好牛叉样子,一次性获取
每日推荐:
71645/5000排名<font color="#FF昨日变化2主题帖子积分
日久生情, 积分 1645, 距离下一级还需 3355 积分
日久生情, 积分 1645, 距离下一级还需 3355 积分
在线时间632 小时
没懂,好像好牛叉样子,一次性获取
很少用,只是编辑器的时候可能用的上
每日推荐:
73928/5000排名<font color="#FF昨日变化3主题帖子积分
日久生情, 积分 3928, 距离下一级还需 1072 积分
日久生情, 积分 3928, 距离下一级还需 1072 积分
蛮牛币6402
在线时间734 小时
谢谢分享,先看看
[]: yhr28 被钱袋砸中进医院,看病花了 1
每日推荐:
87221/10000排名<font color="#FF昨日变化1主题帖子积分
常驻蛮牛, 积分 7221, 距离下一级还需 2779 积分
常驻蛮牛, 积分 7221, 距离下一级还需 2779 积分
在线时间1580 小时
绝地反击苏打绿发
[]: zhaoXH 乐于助人,奖励 1
每日推荐:
5557/1000排名<font color="#FF昨日变化4主题帖子积分
熟悉之中, 积分 557, 距离下一级还需 443 积分
熟悉之中, 积分 557, 距离下一级还需 443 积分
在线时间143 小时
感谢分享,厉害了我的哥
每日推荐:
3218/300排名<font color="#FF昨日变化4主题帖子积分
偶尔光临, 积分 218, 距离下一级还需 82 积分
偶尔光临, 积分 218, 距离下一级还需 82 积分
在线时间76 小时
谢谢,来mark了
每日推荐:
61118/1500排名<font color="#FF昨日变化2主题帖子积分
蛮牛粉丝, 积分 1118, 距离下一级还需 382 积分
蛮牛粉丝, 积分 1118, 距离下一级还需 382 积分
蛮牛币2982
在线时间377 小时
么么哒。。。。
[]: 堕天使lovexx 被钱袋砸中进医院,看病花了 2
每日推荐:
15/50排名<font color="#FF昨日变化82主题帖子积分
注册看看, 积分 5, 距离下一级还需 45 积分
注册看看, 积分 5, 距离下一级还需 45 积分
在线时间0 小时
参观的来了
[]: qikulzt 发帖时在路边捡到 1
蛮牛币,偷偷放进了口袋.
每日推荐:
4446/500排名<font color="#FF昨日变化5主题帖子积分
四处流浪, 积分 446, 距离下一级还需 54 积分
四处流浪, 积分 446, 距离下一级还需 54 积分
在线时间215 小时
每日推荐:
5968/1000排名<font color="#FF昨日变化11主题帖子积分
熟悉之中, 积分 968, 距离下一级还需 32 积分
熟悉之中, 积分 968, 距离下一级还需 32 积分
在线时间316 小时
dasdasdasdsadsaddddd
[]: xiahuanjun789 发帖时在路边捡到 2
蛮牛币,偷偷放进了口袋.
每日推荐:
149/50排名<font color="#FF昨日变化13主题帖子积分
注册看看, 积分 49, 距离下一级还需 1 积分
注册看看, 积分 49, 距离下一级还需 1 积分
在线时间26 小时
每日推荐:
3205/300排名<font color="#FF昨日变化5主题帖子积分
偶尔光临, 积分 205, 距离下一级还需 95 积分
偶尔光临, 积分 205, 距离下一级还需 95 积分
在线时间40 小时
感谢分享,厉害了我的哥
每日推荐:
71543/5000排名<font color="#FF昨日变化9主题帖子积分
日久生情, 积分 1543, 距离下一级还需 3457 积分
日久生情, 积分 1543, 距离下一级还需 3457 积分
蛮牛币1538
在线时间603 小时
每日推荐:Unity编码篇 获取组件,显示隐藏和销毁Unity编码篇 获取组件,显示隐藏和销毁Mm说Unity百家号我们想要访问游戏物体的组件 , 首先要找到这个游戏物体 , 然后才能找到这个物体身上的某个组件去改变它. 我们使用
GetComponent 方法获取组件 :using UnityEpublic class Test : MonoBehaviour {// 定义一个cube对象
private Transform m_C
private void Start()
// 获取这个cube身上的 Transform 组件
m_Cube = GameObject.Find("Cube").GetComponent();
private void Update()
// cube 绕着y轴旋转
m_Cube.Rotate(Vector3.up * Time.deltaTime * 30f);
// 如果按下鼠标左键
if (Input.GetMouseButtonDown(0))
// cube 的颜色变蓝
m_Cube.GetComponent().material.color = Color.
// 如果按下鼠标右键
if (Input.GetMouseButtonDown(1))
// cube变大一倍
m_Cube.localScale = Vector3.one * 2f;
// 如果按下鼠标中键
if (Input.GetMouseButtonDown(2))
// 将cube隐藏
m_Cube.gameObject.SetActive(false);
// 如果按下键盘 D 键
if (Input.GetKeyDown(KeyCode.D))
// 3s 后销毁这个 cube (这里的gameObject指的就是这个cube本身)
Destroy(gameObject, 3f);
}}代码已写好注释 , 可以对比注释看我们在unity新建一个cube , 给这个cube挂上上面的脚本 , 然后运行 unity运行效果 :浏览器版本过低,暂不支持视频播放cube运行状态下一直在绕Y轴旋转 ;按下鼠标左键 cube变蓝 ;按下鼠标右键 cube变大1倍 ;这里我们先在 Start 方法里获取了这个cube的 Transform 组件 , 而 Transform 组件是场景里每个游戏对象都有的组件 , 它控制物体的 位置 ,旋转,大小我们获取到了cube身上的 Tranform 组件 , 我们就可以改变这个cube的位置,大小,旋转等属性 .Transform组件同理 ,我们也可以获取cube的 Box Collider 组件 , 将cube的 Is Trigger 勾选上 , 这个留给大家做练习 , 如果不会的可以留言 , 我在为大家写一下 .现在为大家介绍设置游戏物体的显示和隐藏 SetActive() : SetActive方法里面需要传一个 bool 值 :true : 表示显示物体 ;false : 表示隐藏物体 ;运行效果 : 当我们按下鼠标中键的话 , cube会消失 ;最后为大家介绍 Destroy 方法 :销毁游戏对象及其组件
, 当我们不需要这个游戏物体了 , 我们就需要将这个物体销毁 . 格式 :
Destroy(GameObject)
: 销毁某个物体(要销毁的游戏对象).Destroy(GameObject , time) : 延迟一段时间后 , 销毁这个物体 (第一个参数是要销毁的游戏对象 , 第二个参数是延迟的时间).运行效果 : 当按下键盘 D 键的时候 , 3s后 cube被销毁 .本文由百家号作者上传并发布,百家号仅提供信息发布平台。文章仅代表作者个人观点,不代表百度立场。未经作者许可,不得转载。Mm说Unity百家号最近更新:简介:神奇的Unity,快来感受它的魅力吧作者最新文章相关文章

我要回帖

更多关于 js 获取对象属性 的文章

 

随机推荐