iLMS知識社群歷程檔Login
Position: 黃國哲 > Unity
1110309 隱藏物體
by 黃國哲 2022-03-09 00:58:58, Reply(0), Views(140)





用C則是

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class 隱藏script : MonoBehaviour
{
   
    public GameObject Target ;
    public Component[] meshs; //meshs 可以替換成自己想要的名稱

    void Start()
    {}

    // Update is called once per frame
    void Update()
    {}


//此程式功能為將物件的Renderer渲染器隱藏,而不是將整個物件SetActive關閉

    public void 點擊隱藏I() //點擊第一次會隱藏,再點一次會顯示
    {
        print("YES"); //成功點擊到物品會顯示出YES的文字
        this.GetComponent<Renderer>().enabled = !this.GetComponent<Renderer>().enabled ;     
        //將 !this.GetComponent<Remderer>().enabled改成 =True或 =False可以變成只顯示或隱藏   
    }



    public void 點擊隱藏II() //點擊第一次會隱藏,再點一次會顯示
    {
        print("YES"); //成功點擊到物品會顯示出YES的文字
        this.GetComponent<MeshRenderer>().enabled = !this.GetComponent<MeshRenderer>().enabled ;          //將 !this.GetComponent<MeshRenderer>().enabled改成 =True或 =False可以變成只顯示或隱藏
    }

//如果要隱藏的Renderer很多,可以用下列的GetComponentsInChildren指令

    public void 點擊隱藏III() //點擊第一次會包含子物件一起隱藏,再點一次會一起顯示
    {
        
        print("YES"); //成功點擊到物品會顯示出YES的文字
        meshs = GetComponentsInChildren<Renderer>();
        foreach (Renderer joint in meshs)
            joint.enabled = !joint.enabled ; 
            //將!joint.enabled改成 =True或 =False可以變成只顯示或隱藏
    }


}



隱藏renderer可以指隱藏外型,碰撞保留仍可以點
Reply