日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

Unity3D-C#脚本介绍

發布時間:2024/7/19 C# 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Unity3D-C#脚本介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Unity3D腳本介紹

腳本就是附加在游戲物體上用于定義游戲對象行為的指令代碼。Unity支持C#高級編程語言。

1.語法結構
using 命名空間; public class 類名:Monobehaviour {void 方法名(){Debug.Log("調試信息.");print("調用Debug.Log()方法.");} }
  • 文件名與類名必須一致。
  • 寫好的腳本附加到物體上才能執行。
  • 附加到物體的腳本類必須從MonoBehaviour類繼承
2.創建腳本

1.右鍵–>Create–>C# Script,即可創建腳本,然后使用雙擊文件,使用編程工具打開,即可編寫代碼。生成代碼如下,若start和Update不需要使用,應該刪除然后在編寫代碼。

using System.Collections; using System.Collections.Generic; using UnityEngine;public class g_demo : MonoBehaviour {// Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update(){} }
3.腳本生命周期

1.編寫代碼如下,將該文件拖拽待攝像機上,效果如下。

using System.Collections; using System.Collections.Generic; using UnityEngine;public class g_demo : MonoBehaviour {public int a = 10;private int b = 20; }


2.通過上述修改a的值為a=100,則a的值為該面板中的值,即上述效果其實是創建了一個對象。若需要在面板中顯示private修飾的b的值,需要添加修飾字段 [SerializeField] ,它允許在編輯器中顯示私有變量。

3.隱藏變量
添加 [HideInspector]字段 修飾。

4.對于寫繼承至MonoBehaviour的腳本文件,只需要寫字段和方法。

using System.Collections; using System.Collections.Generic; using UnityEngine;public class g_demo : MonoBehaviour {public int a = 10;[SerializeField]private int b = 20;[HideInInspector]public int c = 10;[Range(0, 100)]public int r;/** 屬性:在編輯器不能顯示,通常腳本中不需要寫。* 構造函數也不需要寫,在Unity中,創建腳本對象,系統會創建子線程,而在構造函數中初始化,會出現無法訪問主線程的資源(Unity腳本對象)而出錯。* 在Unity中,腳本是以一個對象的形式存在的,與代碼無關了。* 在腳本中,只需要寫字段和方法。*/public int a_Value{get { return this.a; }set { this.a = value; }} }

顯示的效果

4.初始化
  • Awake喚醒:當物體載入時,立即調用一次,常用于游戲開始前的初始化可以判斷當滿足某種條件執行此腳本this.enable=true。
  • OnEnable當可用:每當腳本對象啟動時調用;
  • Start開始:物體載入且腳本對象啟用時被調用一次。常用于數據或游戲邏輯初始化,執行時機晚于Awake。
  • 如下啟用腳本。
/*******************初始化**********************/private void Awake(){Debug.Log("Awake-->" + Time.time+this.name);}private void Start(){Debug.Log("Start-->" + Time.time + this.name);}


若某對象A需要在對象B后執行初始化,則可以把B對象的寫在Awake里,A寫在Start里面。

總結

以上是生活随笔為你收集整理的Unity3D-C#脚本介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。