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());
            }
        }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM