zoukankan      html  css  js  c++  java
  • C#脚本

    • 脚本是附加在游戏物体上用于定义游戏对象行为的指令代码
    • 附加到游戏物体的脚本类必须从MonoBehaviour类继承
    • 脚本初始化:
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class Demo01 : MonoBehaviour
    {
        // Start is called before the first frame update
        private void Start()
        {
            
        }
    
        // Update is called once per frame
        private void Update()
        {
            
        }
    }
    
    
    • 脚本生命周期/必然事件/消息:unity脚本从唤醒到销毁的过程
    • 脚本通常不写属性和构造函数,只写字段和方法
    • 不写构造函数因为1.脚本是子线程,不能访问主线程成员
      2.unity会多次在运行期间创建对象,与构造函数初衷不符
      3.脚本生命周期
        //序列化字段,在编译器中显示私有变量
        [SerializeField]
        private int a = 100;
        //隐藏字段
        [HideInInspector]
        public int b = 200;
        //范围
        [Range(0,100)]
        public int c;
    //-------------------------生命周期--------------------------------------
        //Awake先执行 创建游戏对象,立即执行
        private void Awake()
        {
            Debug.Log("Awake" + Time.time.ToString()) ;       
        }
        //Start后执行  创建游戏对象,脚本启用,才执行
        private void Start()
        {
            Debug.Log("Awake" + Time.time);
        }
        //每隔固定时间0.02s修改一次 用于物体运动 不会受到渲染影响
        private void FixedUpdate()
        {
            
        }
        //渲染帧执行 适合处理游戏逻辑
        private void Update()
        {
            
        }
        //延迟更新
        private void LateUpdate()
        {
            
        }
        //-------------------------鼠标事件-----------------------------------
        /*OnMouseEnter
         * OnMouseOver
         * OnMouseExit
         * OnMouseDown
         * OnMouseUp
         */
    
        //-------------------------场景渲染-----------------------------------
        //相机可见
        static void OnBecameVisible()
        {
    
        }
        //相机不可见
        static void OnBecameInbisible()
        {
    
        }
        //-------------------------结束阶段-----------------------------------
        //OnDisable 当不可用
        //OnDestroy 当销毁
        //OnApplicationQuit 当程序结束
    

    4.生命周期
    5.print方法来自父类 MonoBehaviour 仅限在脚本中使用
    6.1-8 单帧调试:启动调试 运行场景 暂停游戏 加断点 单帧执行 结束调试
    7.深度优先遍历子组件

    if (GUILayout.Button("GetComponents"))
            {
                var allComponent = this.GetComponentsInChildren<MeshRenderer>();
                foreach(var item in allComponent)
                {
                    Debug.Log(item.GetType());
                }
            }
    
  • 相关阅读:
    文本域光标操作(选、添、删、取)的jQuery扩展
    jQuery插件,将内容插入到光标处
    onmouseout,mouseover经过子元素也触发的问题解决方案
    【M4】非必要不提供default 构造方法
    【M3】绝对不要以多态方式处理数组
    100亿个数字找出最大的10个
    【M2】最好使用C++转型操作符
    【M26】限制某个class所能产生的对象数量
    理解extern
    变量的属性
  • 原文地址:https://www.cnblogs.com/treblez/p/13503950.html
Copyright © 2011-2022 走看看