unity 关闭自己脚本_unity中使用代码控制脚本的开启和关闭 enabled
學(xué)習(xí)中遇到了使用enabled 來(lái)控制腳本的開(kāi)關(guān),中間遇到了一些問(wèn)題,記錄一下,以便遇到類似問(wèn)題的新手同學(xué)少走彎路。
在想使用代碼控制腳本的開(kāi)啟和關(guān)閉的時(shí)候,網(wǎng)上搜索到的解決方案是這樣的:
GameObject.Find("ObjectName").GetComponent<scriptName>().enabled=true/false;剛看到這個(gè)公式的時(shí)候一臉的懵逼,我主要糾結(jié)的是scriptName 是什么?之前做過(guò)控制燈光的開(kāi)關(guān),想了很久不知道這個(gè)地方該填寫那種類型的參數(shù),后來(lái)想想,控制燈光的時(shí)候這里天的是燈光的組件 Light。那我掛的腳本呢?應(yīng)該填什么呢?(基礎(chǔ)不到導(dǎo)致的問(wèn)題)
下面是問(wèn)題的解答:
首先:Unity中物體上有很多組件,腳本也相當(dāng)于是一個(gè)組件,不過(guò)新手常常認(rèn)為組件只是系統(tǒng)自帶的那些,其實(shí)自己掛的腳本也是組件的一種。比如下圖中所框選的,enabled是控制這里的勾選狀態(tài)的。所以想通過(guò)腳本控制自己或者他人寫的另一個(gè)腳本的參數(shù),scriptName = 腳本名。補(bǔ)充:ObjectName = 腳本所掛物體的名稱,比如下圖為:Directional Light
代碼:
using System.Collections; using System.Collections.Generic; using UnityEngine;public class LightEnabled : MonoBehaviour {private Light mylight;private Test03 scri;// Start is called before the first frame updatevoid Start(){mylight = GetComponent<Light>();scri = GetComponent<Test03>();}// Update is called once per framevoid Update(){if (Input.GetKeyUp(KeyCode.Space)){//mylight.enabled = false;//關(guān)閉腳本,這里是關(guān)閉燈光,燈光類似于組件前面勾選狀態(tài)控制mylight.enabled = !mylight.enabled;//!的意思是 前面的值取反當(dāng)為true時(shí)候結(jié)果為falsescri.enabled = !scri.enabled;//腳本開(kāi)關(guān)狀態(tài)切換//GameObject.Find("Directional Light").GetComponent<Test03>().enabled = !GameObject.Find("Directional Light").GetComponent<Test03>().enabled;隱藏腳本第二種寫法}} }總結(jié)
以上是生活随笔為你收集整理的unity 关闭自己脚本_unity中使用代码控制脚本的开启和关闭 enabled的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 小米公布双11终极战报 224亿创历年大
- 下一篇: 京东11.11:成交额、订单量等创新高,