前言
上一篇博文主要圍繞Unity Inspector部分,圍繞組件,資源文件,父子節(jié)點部分做介紹。
鏈接:https://blog.csdn.net/weixin_43098506/article/details/129274582文章來源:http://www.zghlxwxcb.cn/news/detail-476767.html
本篇博文將主要開始代碼編輯部分,首先介紹Unity適配的C#代碼編輯器,需要對Java或者C++有基礎理解;然后將介紹幀的概念,將在通過腳本文件移動物體部分結束。
下一篇博文將深入到代碼中,研究物體的旋轉,歐拉角法以及通過Rotate進行旋轉;
鏈接:文章來源地址http://www.zghlxwxcb.cn/news/detail-476767.html
正題
適配的C#代碼編輯器
推薦使用 Visual Studio,其可以與Unity適配,在輸入函數以及名稱時會產生聯(lián)想以方便書寫代碼。
Windows-Community 版本的下載鏈接:https://visualstudio.microsoft.com/zh-hans/thank-you-downloading-visual-studio/?sku=Community&channel=Release&version=VS2022&source=VSLandingPage&cid=2030&passive=false
其他用戶自行到官方下載Community免費版。
下載后安裝,只需要安裝Unity游戲部分即可
下載安裝完成后打開Unity,在Edit中選擇Preference
然后在 External Tools 中選擇 Microsoft Visual Studio 2022
如此選擇后,構建了Unity與VS2022的橋梁,雙擊代碼會自動使用VS打開并可以產生聯(lián)想。
注意,可能會出現(xiàn)無聯(lián)想的情況,需要重新執(zhí)行Edit中Preference步驟以解決。
如何添加一個腳本文件
如我們想讓蘑菇在地板上沿著Z軸平移,請問如何做?
步驟:
首先在Assets中創(chuàng)建Scripts文件夾,用于記錄所有代碼文件。
然后在Scripts文件夾中新建代碼文件 C# Script
創(chuàng)建完成后,雙擊會自動通過 Visual Studio 打開,注意C#文件命名建議符合“大駝峰”規(guī)則。
打開VS后第一步檢查文件名稱與類名稱是否相同,不相同會出現(xiàn)錯誤。
沒有問題我們進入下一步,開始代碼編輯。
獲取蘑菇當前位置
在 void Start() 中加入代碼
Debug.Log("蘑菇的名字為:" + this.gameObject.name);
Debug.Log("蘑菇的位置在:" + this.gameObject.transform.position.ToString("F1"));
保存代碼后,返回到Unity中,下一步我們將代碼文件賦給蘑菇物體:
執(zhí)行游戲。單機執(zhí)行,再次點擊 ? 取消執(zhí)行游戲狀態(tài)。
執(zhí)行后效果以及打印結果:
發(fā)現(xiàn)其輸出名稱以及位置坐標信息正確。
代碼解析:
獲取當前指定游戲物體的名稱;
this.gameObject.name
獲取當前指定游戲物體的位置信息并且保留一位小數;
this.gameObject.transform.position.ToString("F1")
基礎代碼
代碼 | 含義 |
---|---|
this | 當前腳本組件 |
this.gameObject | 當前物體 |
this.gameObject.name | 當前物體名稱 |
this.gameObject.transform | 當前物體下的transform屬性 |
this.gameObject.position | 當前物體下的世界坐標 |
this.gameObject.localPosition | 當前物體的本地坐標,或稱相對于父物體的坐標 |
改變物體位置
物體的位置屬性為localPosition,修改物體的localPosition屬性以實現(xiàn)物體的移動。localPosition 為包含三個值的向量 Vector3(x,y,z);
this.transform.localPosition = new Vector3(0,0,5);
代碼保存后,運行發(fā)現(xiàn)蘑菇的位置發(fā)生變化。
幀與幀更新
Frame:游戲幀
FrameRate:幀率,刷新率
FPS:Frames Per Second:每秒更新多少幀
在 Visual Studio 中,代碼主要有兩個方法,一個是Start,一個是Update。每更新一幀時,都將調用一次Update方法。
與幀相關的基礎代碼有:
代碼 | 含義 |
---|---|
Time.time |
取得當前游戲時間 |
Time.deltaTime |
距上幀的時間差 |
Application.targetFrameRate=60 |
設定近似幀率 |
需要注意的是,幀率是在不斷變化的,沒有固定值,只能通過上述代碼設定近似幀率。為什么幀率是不斷變化的???
影響幀率的有很多因素,主要為我們電腦當前執(zhí)行的所有程序。當我們執(zhí)行很多程序時,不可避免的處理器繁忙,會導致幀率的變化。
結合上述所有知識,若我們想要讓物體勻速運動,該如何辦?
上述知識小結:
- Update方法每一幀調用一次;
- 幀率是在不斷變化的,沒有固定值,只能設定近似幀率;
- 改變物體位置的code以及獲取幀時間差的code。
using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;
public class MoveToZ : MonoBehaviour
{
// Start is called before the first frame update
float speed = 5;
void Start()
{
}
// Update is called once per frame
void Update()
{
float distance = speed * Time.deltaTime;
this.transform.Translate(0, 0, distance);
}
}
------ End ------
上一篇博文主要圍繞Unity Inspector部分,圍繞組件,資源文件,父子節(jié)點部分做介紹。
鏈接:https://blog.csdn.net/weixin_43098506/article/details/129274582
下一篇博文將深入到代碼中,研究物體的旋轉,歐拉角法以及通過Rotate進行旋轉;
鏈接:
到了這里,關于【Unity】P4 腳本文件(基礎)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!