untiy 隐藏 对象
时间: 2023-12-21 11:05:10 浏览: 85
在Unity中,可以使用SetActive(false)函数来隐藏一个对象。该函数将指定的对象设置为隐藏状态,不再渲染该对象,但该对象仍然存在于场景中,可以在需要的时候重新显示出来。
以下是一个示例代码,将一个对象隐藏起来:
```
GameObject obj = GameObject.Find("ObjectName");//找到需要隐藏的对象
if (obj != null) {//如果对象不为空
obj.SetActive(false);//将对象设置为隐藏状态
} else {
Debug.LogError("对象为空");//输出错误信息
}
```
在上述代码中,先找到需要隐藏的对象,然后判断该对象是否为空。如果对象不为空,则调用SetActive()函数将其设置为隐藏状态。如果对象为空,则输出错误信息。
需要注意的是,如果你在隐藏一个对象之后再访问它,也有可能会出现“Object reference not set to an instance of an object”的错误。这时候,你需要确保在访问该对象之前,它已经被设置为显示状态。
相关问题
Attribute VB_Name = "mdlWebQueryIETable" Option Explicit Sub WebQueryIETable() Dim objIE As Object Dim objIEDOM As Object Dim objTable As Object Dim objTR As Object Dim strURL As String Dim lngRow As Long Dim intTbRow As Integer Dim intCol As Integer Dim intPage As Integer strURL = "http://data.10jqka.com.cn/market/ggsyl/" & "field/syl/order/desc/page/" '把网页赋值给变量strURL Set objIE = CreateObject("InternetExplorer.Application") '创建ie浏览器 objIE.Visible = False '隐藏ie浏览器 Cells.ClearContents '清空用于保存数据的工作表 For intPage = 1 To 5 '使用for...next循环爬取前5个网页的数据 Debug.Print intPage With objIE .Visible = False .navigate strURL & intPage '使用ie对象navigate访问网页,strURL & intPage用于构建网页URL Do Until .readyState = 4 '用do...loop循环等待网页加载完毕 DoEvents Loop Set objIEDOM = .document '用ie对象document属性返回浏览器加载的文档对象,并赋值给对象变量objIEDOM End With Set objTable = objIEDOM.getElementsByTagName("table")(1) '定位网页中待抓取的数据表格 For intTbRow = IIf(intPage = 1, 0, 1) To objTable.Rows.Length - 1 '用for...next循环遍历网页中表格的单元格 Set objTR = objTable.Rows(intTbRow) lngRow = lngRow + 1 For intCol = 0 To objTR.Cells.Length - 1 Cells(lngRow, intCol + 1) = objTR.Cells(intCol).innerText '将网页中表格单元格的innertext属性返回的字符写入工作表中 Next intCol Next intTbRow Next intPage '由于每个网页的查询结果中都有标题行,但是在工作表中保存数据时,只需要保留第一个标题行,因此代码的循环变量的起始值会有所不同。 objIE.Quit Set objIE = Nothing '关闭ie浏览器 Set objIEDOM = Nothing '释放系统资源 Set objTable = Nothing Set objTR = Nothing End Sub
这段代码定义了一些变量,包括一个 Internet Explorer 对象、Internet Explorer DOM 对象、表格对象、行对象以及字符串 URL。它还定义了几个整型变量,用于存储行数、列数和页数。然后它将字符串 URL 赋值给变量 strURL。
解释private void updateShowSeconds() { if (mShowSeconds) { // Wait until we have a display to start trying to show seconds. if (mSecondsHandler == null && getDisplay() != null) { mSecondsHandler = new Handler(); if (getDisplay().getState() == Display.STATE_ON) { mSecondsHandler.postAtTime(mSecondTick, SystemClock.uptimeMillis() / 1000 * 1000 + 1000); } IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_OFF); filter.addAction(Intent.ACTION_SCREEN_ON); mContext.registerReceiver(mScreenReceiver, filter); } } else { if (mSecondsHandler != null) { mContext.unregisterReceiver(mScreenReceiver); mSecondsHandler.removeCallbacks(mSecondTick); mSecondsHandler = null; updateClock(); } } } private final BroadcastReceiver mScreenReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (Intent.ACTION_SCREEN_OFF.equals(action)) { if (mSecondsHandler != null) { mSecondsHandler.removeCallbacks(mSecondTick); } } else if (Intent.ACTION_SCREEN_ON.equals(action)) { if (mSecondsHandler != null) { mSecondsHandler.postAtTime(mSecondTick, SystemClock.uptimeMillis() / 1000 * 1000 + 1000); } } } }; private final Runnable mSecondTick = new Runnable() { @Override public void run() { if (mCalendar != null) { updateClock(); } mSecondsHandler.postAtTime(this, SystemClock.uptimeMillis() / 1000 * 1000 + 1000); } }; }
这段代码是 Android 系统的一个时钟控件的实现,其中的 `updateShowSeconds()` 方法用于控制是否显示秒数。如果需要显示秒数,则会注册一个广播接收器 `mScreenReceiver` 监听屏幕的开关事件,并在屏幕打开时启动一个计时器 `mSecondsHandler` 定时更新时间显示,同时在屏幕关闭时停止计时器。如果不需要显示秒数,则取消注册广播接收器,并停止计时器,最后更新时间显示。其中 `mSecondTick` 是一个 Runnable 对象,用于更新每一秒的时间显示。整个实现的目的是在时钟控件中提供秒数的显示和隐藏功能。
阅读全文