• UGUI代码分析


    1.canvas,screen模式和world模式区别:screen的绑定摄像机与canvas相对位置不会改变不可改变canvas,world模式下有个event camera相对位置可改变,canvas可改变,canvas就相当于一个3D物体。sorting,order layer规定canvas优先级。

    2.富文本支持html标签。

    3.控制image fill

    public class imagetype : MonoBehaviour {
        public Image imagel;
        public float i = 0.0f;
    }
    void Update () {
            imagel.type = Image.Type.Filled;
            imagel.fillMethod = Image.FillMethod.Radial360;
            imagel.fillAmount = i;
            if (i >= 1.0f) { i = 0.0f; }
            i = i + 0.002f;
    		
    	}
    

    4.控制按钮

    public class button : MonoBehaviour {
    
        public Image image_sp;
        public Text text_sp;
        public Text text_btn;
    
        public void open_close(){
            if(text_btn.text == "打开图片"){
                image_sp.gameObject.SetActive(true);
                text_btn.text = "关闭图片";
                text_sp.text = "无敌是多么寂寞";
            }
            else {
                image_sp.gameObject.SetActive(false);
                text_btn.text = "打开图片";
                text_sp.text = "无敌?";
            }
    

    5.控制按钮,内建图片数组

    public class button1 : MonoBehaviour { 
    
        public Image image_sp;
        public Sprite[] image_sps;
        private string select_name;
        private int i;
        public void sp()
        {
            select_name = EventSystem.current.currentSelectedGameObject.name;
            if (select_name == "Button_left")
            {
                if (i <= 0) { i = image_sps.Length - 1; }
                image_sp.overrideSprite = image_sps[--i];
            }
            else
            {
                if (i >= image_sps.Length - 1) { i = 0; }
                image_sp.overrideSprite = image_sps[++i];
            }
    

    6.锚点必须在他的父对象内设置,如果没有父对象或者父对象没有锚点那么他就没有锚点。

    7.InputField。Navigation自动匹配发布导航信息。

    public class input_js : MonoBehaviour {
        public Text text_jg;
        public InputField input1;
        public InputField input2;
        public InputField input_to;
        public GameObject panel_tc;
    
        public void js(){
            text_jg.text = (int.Parse(input1.text) - int.Parse(input2.text)).ToString();
        }
        public void tc()
        {
            panel_tc.SetActive(true);
        }
        public void yes()
        {
            text_jg.text = input_to.text;
            panel_tc.SetActive(false);
        }
        public void no()
        {
            
            panel_tc.SetActive(false);
        }
    
    }
    

    8.xml本地存储登录案例Application.OpenURL("http://wwww.4399.com");

      这里的涉及到未包含的库,需要引入一个dll文件,参考思考问题博客。登录窗口脚本,xml文件的创建。dll的引用。var隐式类型。

    using System.IO;
    using System.Xml;
    public class dengl : MonoBehaviour
    {
        public Image image_zc;
        public Text text_info;
        public Image image_ty_xxk;
        public Text text_ts;
        public InputField inputField_yhzh;
        public InputField inputField_yhmm;
        public InputField inputField_qrmm;
        public InputField inputField_yhdh;
        public InputField inputField_yhqq;
        public InputField inputField_zh;
        public InputField inputField_mm;
        private string _xmlpath;//yong hu wen jian,_xmlpath = Application.dataPath + "/user.xml";
        //获得date路径只能在主线程赋值,不能再moonbehaviour构造函数赋值如上
       /* public void text()
        {
            ty_xxk("用户名或密码不能为空");
        }*/
        void Start()
        {
            _xmlpath = Application.dataPath + "/user.xml";
            if (!File.Exists(_xmlpath))
            {
                XmlDocument xmlDoc = new XmlDocument();//xin jian xml shi li
                XmlElement root = xmlDoc.CreateElement("Root");//gen jie dian , zui shang ceng jie dian
                xmlDoc.AppendChild(root);//zhi jie dian
                XmlElement user = xmlDoc.CreateElement("User");//yong hu jie dian
                user.SetAttribute("user_name", "Admin");
                user.SetAttribute("user_pass", "123456");
                user.SetAttribute("user_tel", "18373290290");
                user.SetAttribute("user_qq", "1780585054");
                root.AppendChild(user);
                xmlDoc.Save(_xmlpath);
                Debug.Log("xml creat success");
            }
        }
        public void Quit()
        {
    #if UNITY_EDITOR
            UnityEditor.EditorApplication.isPlaying = false;
    #else
            Application.Quit();
    #endif
        }
        public void open_zc()
        {
            image_zc.gameObject.SetActive(true);
        }
        public void close_zc()
        {
            image_zc.gameObject.SetActive(false);
        }
        public void ty_xxk(string str)
        {
            image_ty_xxk.gameObject.SetActive(true);
            text_info.text = str;
            text_ts.text = str;
        }
        public void ty_xxk_close(string str)
        {
            image_ty_xxk.gameObject.SetActive(false);
    
        }
        public void zc()
        {
            if(inputField_yhzh.text == ""|| inputField_yhmm.text == "" || inputField_qrmm.text == "" || inputField_yhdh.text == "" || inputField_yhqq.text == ""){
                ty_xxk("信息不完整!有空的项目!");
                return;
            }
            if (inputField_yhmm.text != inputField_qrmm.text)
            {
                ty_xxk("两次输入的密码不一致");
                return;
            }
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load(_xmlpath);
            XmlNodeList nodeList = xmlDoc.SelectSingleNode("Root").ChildNodes;
            foreach (XmlElement xe in nodeList)
            {
                if (xe.GetAttribute("user_name") == inputField_yhzh.text)
                    ty_xxk("该用户名已被占用!请更换用户名!");
                
            }
            //ty_xxk("恭喜该用户名可以使用");
            //qu de gen jie dian
            XmlNode root = xmlDoc.SelectSingleNode("Root");
            //chuang jian xin jie dian
            XmlElement user = xmlDoc.CreateElement("User");
            user.SetAttribute("user_name", inputField_yhzh.text);
            user.SetAttribute("user_pass", inputField_yhmm.text);
            user.SetAttribute("user_tel", inputField_yhdh.text);
            user.SetAttribute("user_qq", inputField_yhqq.text);
            //jiang xin jie dian jia ru gen jie dian
            root.AppendChild(user);
            //bao cun wen jian
            xmlDoc.Save(_xmlpath);
            ty_xxk("恭喜注册成功");
            inputField_yhzh.text = "";
            inputField_yhmm.text = "";
            inputField_qrmm.text = "";
            inputField_yhdh.text = "";
            inputField_yhqq.text = "";
    
        }
        public void denglu()
        {
            if (inputField_zh.text == "" || inputField_mm.text == "")
            {
                ty_xxk("用户名或者密码不能为空!");
                return;
            }
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load(_xmlpath);
            XmlNodeList nodeList = xmlDoc.SelectSingleNode("Root").ChildNodes;
            foreach(XmlElement xe in nodeList)
            {
                if(xe.GetAttribute("user_name") == inputField_zh.text)
                {
                    var mima = xe.GetAttribute("user_pass");
                    if(inputField_mm.text == mima)
                    {
                        ty_xxk("登录成功!");
                        Application.OpenURL("http://wwww.4399.com");
                        return;
                    }else
                    {
                        ty_xxk("登录失败!密码错误!");
                        return;
                    }
                }
            }
            ty_xxk("此用户账号还没有注册!请注册!");
        }
    

    9.Toggle。    GameObject.Find 是不是不能找到一个物体的子物体?bg1,2,3,4是bg的子物体。

    public class qh_bj : MonoBehaviour {
    
        private GameObject root;
        private GameObject oldobj = null;
        private GameObject newobj = null;
    	// Use this for initialization
    	void Start () {
            root = GameObject.Find("bg");
            oldobj = root.transform.Find("bg1").gameObject;
            Debug.Log(oldobj.name);
    	}
        public void print_name()
        {
            string s = EventSystem.current.currentSelectedGameObject.name;
            //Debug.log(str);
            switch (s)
            {
                case "Toggle1":
                    newobj = root.transform.Find("bg1").gameObject;
                    newobj.SetActive(true);
                    oldobj.SetActive(false);
                    oldobj = newobj;
                    oldobj.SetActive(true);
                    break;
                case "Toggle2":
                    newobj = root.transform.Find("bg2").gameObject;
                    newobj.SetActive(true);
                    oldobj.SetActive(false);
                    oldobj = newobj;
                    oldobj.SetActive(true);
                    break;
                case "Toggle3":
                    newobj = root.transform.Find("bg3").gameObject;
                    newobj.SetActive(true);
                    oldobj.SetActive(false);
                    oldobj = newobj;
                    oldobj.SetActive(true);
                    break;
                case "Toggle4":
                    newobj = root.transform.Find("bg4").gameObject;
                    newobj.SetActive(true);
                    oldobj.SetActive(false);
                    oldobj = newobj;
                    oldobj.SetActive(true);
                    break;
            }
        }
    

    10.Toggle2   Find子物体

    public class qh_wz : MonoBehaviour {
        public Text text1;
        public  void t_event2(bool xz)
        {
            string tt = transform.FindChild("Label").GetComponent<Text>().text;
            bool bl = GetComponent<Toggle>().isOn;
            if (bl)
            {
                text1.text = text1.text + tt + "真" + "
    ";
            }else
            {
                text1.text = text1.text + tt + "假" + "
    ";
            }
        }
    

    FindChild改成Find也是可以的。

    11.slider模拟血条

    public class xuetiao : MonoBehaviour {
        public Text text1;
        public Slider slider2;
    	public void dis_slider_value()
        {
            text1.text = slider2.value.ToString();
        }
        public void zx()
        {
            slider2.value = slider2.value + 60;
        }
        public void jx()
        {
            slider2.value = slider2.value - 60;
        }
    

    12.slider,建立materia彩纸detail动态纹理 ,纹理偏移,   Time.time是从程序开始执行到现在的时间,,,,deltaTime=0.0166,要加Position As SUV1组件

    public class mov : MonoBehaviour {
        public Light l1;
        Material mOriginal;
        Image mSprite;
        public Vector2 scrollPerSecond = Vector2.zero;
        public AudioSource myAudio;
        public Text text_ln;
        public Text text_vn;
    	// Use this for initialization
    	void Start () {
            mSprite = GetComponent<Image>();
            mOriginal = mSprite.material;
    	}
    		// Update is called once per frame
    	void Update () {
    		if (mOriginal != null){
                Texture tex = mOriginal.GetTexture("_DetailTex");
                if (tex != null)
                {
                    mOriginal.SetTextureOffset("_DetailTex", scrollPerSecond * Time.time);
                }
            } 
    	}
        public void light1(float v)
        {
            l1.intensity = v;
            text_ln.text = v.ToString();
        }
        public void vol(float v)
        {
            myAudio.volume = v;
            text_vn.text = v.ToString();
        }
    

     13.scrollbar。编写一个带浮点型参数的函数,scrollar传递过去

    GetComponent.<RectTransform>().localPosition = new Vector3(1f,1f,1f);
    
    GetComponent.<RectTransform>().localScale = new Vector3(1f,1f,1f);
    

    14.Layout。child Force Expand与Flexible功能一样,文字和image自带适宜尺寸,raw image没有适宜尺寸。

    15.模拟下拉组合框,迭代访问子物体

    public class list : MonoBehaviour {
        public GameObject list_close;
        public InputField field1;
        public Text text_dis;
    	// Use this for initialization
    	void Start () {
    		
    	}
    	public void combox()
        {
            for(int i = 0; i < this.transform.childCount; i++)
            {
                field1.text = this.transform.GetChild(i).GetComponent<Text>().text;
                text_dis.text = "你选择的是" + field1.text;
            }
        }
        public void combox_close()
        {
            list_close.SetActive(false);
            GameObject.Find("Toggle").GetComponent<Toggle>().isOn = false;
        }
    }
    

     16.事件类!!!!!!!!!!!!!!!!!!!!!!!!!!接口

    public class scroll : MonoBehaviour,IMoveHandler,IScrollHandler{
        //默认是事件 是Image 如果鼠标点击了别处 那么事件就变了 就不能控制Image了
        public Text text1;
        public Camera maincamera;
        private static float f1;
    
    	// Use this for initialization
    	void Start () {
    		
    	}
    	
    	// Update is called once per frame
    	void Update () {
    		
    	}
        public void OnMove(AxisEventData eventData)
        {
            text1.text = eventData.moveDir.ToString();
        }
        public void OnScroll(PointerEventData eventData)
        {
            f1 = f1 + eventData.scrollDelta.y * 3f;
            maincamera.fieldOfView = Mathf.Clamp(f1, 1f, 179f);
            text1.text = eventData.scrollDelta.ToString();
        }
    }
    

      

    public class select : MonoBehaviour,ISelectHandler,ICancelHandler,IPointerDownHandler,IUpdateSelectedHandler,IDeselectHandler,ISubmitHandler{
        //物体身上必须有脚本才能 实现事件功能
        public Text text1;
        private int i = 0;
    	public void OnSelect(BaseEventData eventData)
        {
            //text1.text = "我被选择了" + eventData.selectedObject;
        }
        public void OnCancel(BaseEventData eventData)//按esc取消事件
        {
            text1.text = "我被取消了选择" + eventData.selectedObject;
        }
        public void OnPointerDown(PointerEventData eventData)
        {
            text1.text = eventData.position.ToString();//position属性可通过查看PointerEventData/Variables改为其他属性
        }
        public void OnUpdateSelected(BaseEventData eventData)
        {
            ++i;
            //text1.text = "我被选择了" + eventData.selectedObject + "OnUpdateSelected" + i;
        }
        public void OnDeselect(BaseEventData eventData)
        {
            text1.text = "我被取消了选择" + eventData.selectedObject + "OnDeselect";
        }
        public void OnSubmit(BaseEventData eventData)
        {
            text1.text = "我被提交了" + eventData.selectedObject + "Onsubmit";
        }
    

     Canvas Group组

    CanvasGroup group = m_DraggingIcon.AddComponent<CanvasGroup>();
            group.blocksRaycasts = false;
    

     复制拖动装备案例

    public class drag_zb : MonoBehaviour,IBeginDragHandler,IDragHandler,IEndDragHandler{
        public Canvas cavs;
        private GameObject m_DraggingIcon;
        private RectTransform m_DraggingPlane;
    	// Use this for initialization
    	void Start () {
            m_DraggingPlane = cavs.transform as RectTransform;
    	}
    	
    	// Update is called once per frame
    	void Update () {
    		
    	}
        public void OnBeginDrag(PointerEventData eventData)
        {
            Debug.Log("OnBeginDrag:拖动开始事件:" + eventData.position);
            m_DraggingIcon = new GameObject("icon");
            m_DraggingIcon.transform.SetParent(cavs.transform, false);
            m_DraggingIcon.transform.SetAsLastSibling();
            var image = m_DraggingIcon.AddComponent<Image>();
            CanvasGroup group = m_DraggingIcon.AddComponent<CanvasGroup>();
            group.blocksRaycasts = false;
            image.sprite = GetComponent<Image>().sprite;
            image.SetNativeSize();
            if(m_DraggingIcon != null)
            {
                var rt = m_DraggingIcon.GetComponent<RectTransform>();
                Vector3 globalMousePos;
                if (RectTransformUtility.ScreenPointToWorldPointInRectangle(m_DraggingPlane, eventData.position, eventData.pressEventCamera, out globalMousePos)){
                    rt.position = globalMousePos;
                    rt.rotation = m_DraggingPlane.rotation;
                }
            }
        }
        public void OnDrag(PointerEventData eventData)
        {
            Debug.Log("OnDrag:拖动中事件" + eventData.position);
            if (m_DraggingIcon != null)
            {
                var rt = m_DraggingIcon.GetComponent<RectTransform>();
                Vector3 globalMousePos;
                if(RectTransformUtility.ScreenPointToWorldPointInRectangle(m_DraggingPlane,eventData.position,eventData.pressEventCamera,out globalMousePos))
                {
                    rt.position = globalMousePos;
                    rt.rotation = m_DraggingPlane.rotation;
                }
            }
        }
        public void OnEndDrag (PointerEventData eventData)
        {
            Debug.Log("OnEndDrag:拖动结束事件" + eventData.position);
            if (m_DraggingIcon != null)
            {
                Destroy(m_DraggingIcon);
            }
        }
    

     粘贴复制的装备

    public class drop_zb : MonoBehaviour,IDropHandler,IPointerEnterHandler,IPointerExitHandler{
        public void OnDrop(PointerEventData data)
        {
            var originalObj = data.pointerDrag;
            if (originalObj == null)
                return;
            var srcImage = originalObj.GetComponent<Image>();
            if (srcImage == null)
                return;
            GetComponent<Image>().sprite = data.pointerDrag.GetComponent<Image>().sprite;
        }
        public void OnPointerEnter(PointerEventData eventData)
        {
            var originalObj = eventData.pointerDrag;
            if (originalObj != null) { 
            
                GetComponent<Image>().color = Color.yellow;
            }
        }
        public void OnPointerExit(PointerEventData eventData)
        {
            var originalObj = eventData.pointerDrag;
            if (originalObj == null)
            {
                return;
            }
            GetComponent<Image>().color = Color.white;
        }
    
    
    
    }
    

    选择事件提交事件

    public class select : MonoBehaviour,ISelectHandler,ICancelHandler,IPointerDownHandler,IUpdateSelectedHandler,IDeselectHandler,ISubmitHandler{
        //物体身上必须有脚本才能 实现事件功能
        public Text text1;
        private int i = 0;
    	public void OnSelect(BaseEventData eventData)
        {
            //text1.text = "我被选择了" + eventData.selectedObject;
        }
        public void OnCancel(BaseEventData eventData)//按esc取消事件
        {
            text1.text = "我被取消了选择" + eventData.selectedObject;
        }
        public void OnPointerDown(PointerEventData eventData)
        {
            text1.text = eventData.position.ToString();//position属性可通过查看PointerEventData/Variables改为其他属性
        }
        public void OnUpdateSelected(BaseEventData eventData)
        {
            ++i;
            //text1.text = "我被选择了" + eventData.selectedObject + "OnUpdateSelected" + i;
        }
        public void OnDeselect(BaseEventData eventData)
        {
            text1.text = "我被取消了选择" + eventData.selectedObject + "OnDeselect";
        }
        public void OnSubmit(BaseEventData eventData)
        {
            text1.text = "我被提交了" + eventData.selectedObject + "Onsubmit";
        }
    }
    

    代码生成按钮物体并添加监听器

    public class dtai_event : MonoBehaviour {
    
        public Canvas cavs;
        public Text text1;
        public Font f1;
        public int counter;
    	// Use this for initialization
    	void Start () {
            counter = 0;
    	}
    	
    	// Update is called once per frame
    	void Update () {
            //Instantiate(pre, m_transform.position, m_transform.rotation);
    		
    	}
        public void create_btn()
        {
            if (counter > 4)
                return;
            ++counter;
            var m_DraggingIcon = new GameObject("btn_" + counter);
            m_DraggingIcon.transform.SetParent(cavs.transform, false);
            m_DraggingIcon.transform.localPosition = gameObject.transform.localPosition + new Vector3(0, 60 * counter, 0);
            m_DraggingIcon.AddComponent<Image>();
            m_DraggingIcon.transform.localScale = new Vector3(0.8f, 0.3f, 1f);
            m_DraggingIcon.transform.SetAsLastSibling();
    
            var btn = m_DraggingIcon.AddComponent<Button>();
    
            var tt = new GameObject("text_" + counter);
            var text2 = tt.AddComponent<Text>();
            text2.text = "按钮" + counter;
            text2.color = Color.blue;
            text2.resizeTextForBestFit = true;
            text2.font = f1;
            // text2.fontStyle = FontStyle.Bold;
            text2.alignment = TextAnchor.MiddleLeft;
            tt.transform.SetParent(m_DraggingIcon.transform, false);
            tt.transform.SetAsLastSibling();
    
            btn.onClick.AddListener(delegate ()
            {
                this.btn1click(m_DraggingIcon);
            });// 匿名方法 添加 监听函数
            
        }
        public void btn1click(GameObject e)
        {
            text1.text = "你点击了" + e.name;
        }
    

     delegate定义委托 订阅事件 类里定义一个类!!!!!!!!!!!!!!!!!public class类public viod函数

    public class wtuo_dyue : MonoBehaviour {
        public Text text1;
        private int counter;
        private string disstr = "111111111111111111111111111";
        private bool toggle1;
        private int tt;
    	// Use this for initialization
    	void Start () {
            counter = 0;
            toggle1 = false;
            tt = 100;
    		
    	}
    	
    	// Update is called once per frame
    	void Update () {
            if (toggle1)
            {
                tt -= 5;
                if (tt < 0)
                {
                    timer_elapsed();
                    tt = 100;
                }
            }
    	}
        public void start_out()
        {
            toggle1 = false;
        }
        //1 定义一个委托
        public delegate void timearriveEventHandler(string str);
        //时间到达类
        public class Timer_arrived
        {
            //2 用委托定义事件 关键字event
            public static event timearriveEventHandler timearrived;
            public static void Start_time()
            {
                //触发事件
                timearrived("oookkkk");
            }
        }
        public void timer_elapsed()
        {
            if (counter < 1)
                //3 订阅事件
                Timer_arrived.timearrived += new timearriveEventHandler(WriteText);
            Timer_arrived.Start_time();
                    
         
        }
        //4 编写事件处理方法
        public void WriteText(string s)
        {
            text1.text += disstr[counter++ % disstr.Length];
        }
    

     定义要发布的新闻

    public class dingy_weit : MonoBehaviour {
        public InputField InputField_title;
        public InputField InputField_content;
        //定义要发布的新闻类 参数
        public class news_args
        {
            public string news_title = "news_title";
            public string news_content = "news_content";
        }
        // 定义委托用于定义事件
        public delegate void news_handler(object sender, news_args e);
        //定义事件
        public event news_handler News_build;
        //定义触发事件的方法
        public void build_news()
        {
            //生成触发事件参数
            news_args news = new news_args();
            news.news_title = InputField_title.text;
            news.news_content = InputField_content.text;
            if (News_build != null) ;//一定要检测  检测有人订阅
            News_build(this, news);   //this 当前脚本所在对象
        }
    }
    

      接收或者取消订阅新闻

    public class dingyue_wt : MonoBehaviour {
        public GameObject s_news_center;
        // Use this for initialization
        public InputField InputField_title;
        public InputField InputField_content;
    	public void listener_news_start()
        {
            s_news_center.GetComponent<dingy_weit>().News_build += Listener;
        }
        public void listener_news_stop()
        {
            s_news_center.GetComponent<dingy_weit>().News_build -= Listener;
        }
        public void Listener(object sender,dingy_weit.news_args e)
        {
            InputField_title.text = e.news_title;
            InputField_content.text = e.news_content;
        }
        public void Start()
        {
            s_news_center.GetComponent<dingy_weit>().News_build += Listener;
        }
    

     17.UGUI界面案例,给载有动画组件的的物体添加脚本,可以给动画针添加事件脚本

    using UnityEngine.SceneManagement;
    
    public class Game_manager : MonoBehaviour {
        public Animator ani_text1;
        public Animator ani_window;
        public Animator ani_set;
        public Animator ani_vudio;
        void Awake()
        {
            ani_vudio = GameObject.Find("main_seting_audio").GetComponent<Animator>();
        }
        void Start()
        {
            ani_vudio.gameObject.SetActive(false);
        }
        public void text_in()
        {
            ani_text1.gameObject.SetActive(true);
            ani_text1.SetBool("sp_in", true);
            ani_window.SetBool("window_in", false);
            StartCoroutine(WaitTime(10.0f));
            //ani_window.gameObject.transform.parent.gameObject.SetActive(false)
        }
    	public void main_window_in()
        {
            ani_window.SetBool("window_in", true);
        }
        IEnumerator WaitTime(float waittime)
        {
            yield return new WaitForSeconds(waittime);
            this.main_window_in();
            ani_text1.SetBool("sp_in", false);
            ani_text1.gameObject.SetActive(false);
            //在第一段动画没播完前改变Bool值,无法实现动画转换
        }
        public void Quit()
        {
        #if UNITY_EDITOR//预处理 写错 检测不出来       
            UnityEditor.EditorApplication.isPlaying = false;
        #else
            Application.Quit();
        #endif
        }
        public void start_game()
        {
            //Application.LoadLevel("denglu");
            SceneManager.LoadScene("denglu");
        }
        public void Set_in()
        {
            ani_window.SetBool("window_in", false);
            ani_set.SetBool("set_in", true);
        }
        public void window_back()
        {
            ani_window.SetBool("window_in", true);
            ani_set.SetBool("set_in", false);
        }
        public void vudio_in()
        {
            ani_vudio.gameObject.SetActive(true);
            ani_vudio.SetBool("vudio_in", true);
            
        }
        public void vudio_out()
        {
            ani_vudio.SetBool("vudio_in", false);
        }
    

      

  • 相关阅读:
    NSHashtable and NSMaptable
    架构的本质:构造定律与结合规则
    软件复用的基础和形式
    架构模式:循环模式、管道模式
    待整理
    functions and closures are reference types-函数和闭包是引用类型
    @autoclosure-可以让表达式自动封装成一个闭包:输入的是一个表达式
    Python 运算符优先级
    Linux下chkconfig命令详解
    Linux下Redis开机自启(Centos)
  • 原文地址:https://www.cnblogs.com/white-L/p/6227942.html
Copyright © 2020-2023  润新知