U3D-基础API:creat/tag/layer/active

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

public class CreatGameObject : MonoBehaviour {

    public GameObject Cube;
    //3-0、这里定义了一个cube的字段,则unity的脚本里就会多一个空的cube栏
    //,把unity里的cube拖到这个栏里,就可以在下方调用这个cube拥有的方法

    
    void Start () 
    {
       
       //动态创建一个游戏对象
        //1、确定形状
        GameObject Aobject = GameObject.CreatePrimitive(PrimitiveType.Capsule);
        //2、设置所创建的游戏对象的初始位置,1/2步骤完毕即可动态创建一个游戏物体
        Aobject.transform.position = new Vector3(3, 0, 3);
        Aobject.name = "Aobject";
        Debug.Log(Aobject.name);

        GameObject Bobject = GameObject.CreatePrimitive(PrimitiveType.Sphere);
        Bobject.transform.position = new Vector3(0,3,3);
        Bobject.name = "Bobject";
        Debug.Log(Bobject.name);

        GameObject Cobject = GameObject.CreatePrimitive(PrimitiveType.Cube);
        Cobject.transform.position = new Vector3(3,3,0);
        Cobject.name = "Cobject";
        Debug.Log(Cobject.name);

        //3-1,打印cube的标签Tag
        Debug.Log("此时Cube的标签名是:"+Cube.tag);
        //3-2,由上方3-1得出扩展:可以经过if/else判断cube的tag是什么类型,继而执行什么操作
        //,且由于if跟else是两个不同的作用域,所以变量名可以取名相同,不冲突。
        if (Cube.tag == "Untagged")
        {
            GameObject Dobject = GameObject.CreatePrimitive(PrimitiveType.Sphere);
            Dobject.transform.position = new Vector3(5, 0, 5);
            Dobject.name = "DifObject";
            Debug.Log(Dobject.name + "判断标签名tag一致" + Dobject.tag);
        }
        else
        {
            GameObject Dobject = GameObject.CreatePrimitive(PrimitiveType.Capsule);
            Dobject.transform.position = new Vector3(0, 5, 5);
            Dobject.name = "DelseObject";
            Debug.Log(Dobject.name + "判断标签名tag不同" + Dobject.tag);
        }

        //4、除了可以打印cube的tag,还可以打印cube的layer的层级值
        //,索引从0开始,层位于索引几即可得索引值。
        //可以通过layer的add layer自定义添加新层,貌似只能从8开始添加,例如第8层添加了VR层
        Debug.Log(Cube.layer);
        //如果选择新添加的VR层,则会打印出8
        //同时camera检视面板里的Culling Mask(遮罩)栏里也是可以选择层的,只有游戏对象的层级属于camera所勾选的层级类型才会被显示。
        //所以游戏的小地图可以用这个方法只显示路径。


        //5、游戏物件检视面板勾选了Static
        //【——————插播小知识:当游戏对象在检视面板勾选了Static时,表示:有且仅有一份。当勾选了static则在unity运行时无法对该物件进行任何操作——————】
        //【——————其实说白了就是游戏场景里只需要烘焙一次的场景物件就勾选Static,一般用于不会动的屋子杂物栅栏什么的,因为物件影子烘焙了就固定在一个地方了————】


        //6、【SetActive】API
        Cube.SetActive(true);//如果设置false,则unity运行时,cube会自动隐藏,检视面板负责显示/隐藏物件的勾号会自动取消。
        //引申:SetActive可用于连连看一类游戏,两个一样的物件tag值一样,则隐藏消失掉,如果tag值不一样则不会消失。




    }
    
    





    void Update () {
        
    }
}



你可能感兴趣的:(U3D-基础API:creat/tag/layer/active)