国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Unity 從0開始編寫一個(gè)技能編輯器_01_分析需求

這篇具有很好參考價(jià)值的文章主要介紹了Unity 從0開始編寫一個(gè)技能編輯器_01_分析需求。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

入職以來一直很想實(shí)現(xiàn)一個(gè)技能編輯器,在積累了一些經(jīng)驗(yàn)以后,決定利用ScriptableObject開發(fā)一個(gè),在此記錄
1.簡(jiǎn)單的需求分析
在游戲開發(fā)中,技能系統(tǒng)是一個(gè)至關(guān)重要的組成部分。技能決定了游戲角色可以執(zhí)行的各種動(dòng)作,例如攻擊、治療、移動(dòng)等。通常,技能由多個(gè)元素組成,包括技能效果(Effect)、技能觸發(fā)條件(triggerr)、技能冷卻時(shí)間(Cooldown)等。為了更好地管理和調(diào)整這些技能,我們需要一個(gè)可視化的編輯器。
2.粗略的實(shí)現(xiàn)哪些功能
Buff 類似計(jì)時(shí)器功能 startscript endscript delaytime(開始延時(shí)時(shí)間) lasttime(buff持續(xù)時(shí)間-1為永久) TrickTime(腳本執(zhí)行間隔) TrickScript(持續(xù)時(shí)間內(nèi)按間隔時(shí)間刷新執(zhí)行的腳本)

Trigger 一些事件觸發(fā) 觸發(fā)條件 判斷是否執(zhí)行后續(xù)腳本 觸發(fā)后執(zhí)行的腳本,要在特定位置埋下事件

Effect 生成bullet 執(zhí)行Script (設(shè)計(jì)一個(gè)skillbyEffect 憑此釋放技能可以讓怪物NPC靠Buff釋放技能)

Bullet 子彈 子彈形態(tài) 鏈接track

Skill 技能應(yīng)該具有各種屬性,包括傷害、冷卻時(shí)間、目標(biāo)、范圍等。編輯器需要允許用戶定義這些屬性,并且能夠?qū)?Effect、Buff 和 Bullet 與技能關(guān)聯(lián)。

3.ScriptableObject的意義
可以創(chuàng)建多個(gè)不同類型的ScriptableObject,例如Skill、Buff、Effect、Bullet等,以滿足不同的需求。
ScriptableObject的數(shù)據(jù)是獨(dú)立的,它們不依賴于特定的場(chǎng)景或游戲?qū)ο?。這使得技能可以輕松地跨不同場(chǎng)景和游戲?qū)ο蠊蚕砗椭赜谩?br> 腳本化操作:可以通過腳本在運(yùn)行時(shí)創(chuàng)建、修改和管理ScriptableObject。

例如

using UnityEngine;
using UnityEngine.Events;

[CreateAssetMenu(fileName = "New Skill", menuName = "Skill System/Skill")]
public class SkillSo : ScriptableObject
{
	[SerializeField]
	public SkillType skillType;

	[SerializeField]
	public AttackType attackType;

	[SerializeField]
	public float spiritCost;

	[SerializeField]
	public float damageRatio;

	[SerializeField]
	public float skillCD;

	public float lifeTime;

	public Vector3 direction;

	public float speed;

	public float damage = 1f;
}


[CreateAssetMenu(fileName = “New Skill”, menuName = “Skill System/Skill”)] 是一個(gè)特性(Attribute),用于在Unity編輯器中創(chuàng)建新的技能資產(chǎn)(Asset)。它指定了在Unity項(xiàng)目中創(chuàng)建新技能時(shí)的默認(rèn)文件名和菜單路徑。這使得在Unity編輯器中可以右鍵點(diǎn)擊創(chuàng)建新技能,并將其保存為一個(gè)ScriptableObject。
下面一系列的 public 字段是用來存儲(chǔ)技能的各種屬性和參數(shù)。這些字段包括:

skillType:技能的類型,可能是一個(gè)自定義枚舉類型 SkillType。
attackType:技能的攻擊類型,可能是一個(gè)自定義枚舉類型 AttackType。
spiritCost:使用技能所需的精力消耗。
damageRatio:技能的傷害比率。
skillCD:技能的冷卻時(shí)間。
lifeTime:技能在游戲中存在的時(shí)間。
direction:技能的方向。
speed:技能的速度。
damage:技能的傷害值,默認(rèn)為1。
后續(xù)我可能會(huì)擴(kuò)展它和SkillType的枚舉

在編寫這段代碼后即可右鍵創(chuàng)建so文件
Unity 從0開始編寫一個(gè)技能編輯器_01_分析需求,unity,編輯器,游戲引擎

using System;

// 技能類型枚舉
public enum SkillType
{
    MeteorSword,             // 隕劍術(shù)
    SkySword,           // 天劍
    SpeedBuff,          // 速度增益
    SwordRain,          // 劍雨
    WaterDrawSword,     // 提水劍
    None                // 無(wú)
}

一個(gè)簡(jiǎn)單的skillType枚舉
Unity 從0開始編寫一個(gè)技能編輯器_01_分析需求,unity,編輯器,游戲引擎
然后設(shè)計(jì)一個(gè)skill基類去讀取和利用其中的信息

public abstract class SkillBase : MonoBehaviour
{
	public SkillSo so;

	public SkillType GetSkillType()
	{
		return so.skillType;
	}


	public AttackType GetAttackType()
	{
		return so.attackType;
	}


	public float SpiritCost()
	{
		return so.spiritCost;
	}


	public float DamageRatio()
	{
		return so.damageRatio;
	}


	public float SkillCD()
	{
		return so.skillCD;
	}


	protected void Awake()
	{
		so.sr = base.GetComponentInChildren<SpriteRenderer>();
	}




	protected virtual void SkillFinish()
	{
        UnityEngine.Object.Destroy(base.gameObject);
	}


}

后續(xù)應(yīng)該在skillbase寫一些邏輯去處理,例如對(duì)外提供skill圖標(biāo)讓UImanager加載,對(duì)碰撞或范圍內(nèi)的敵人造成傷害。

在貼一個(gè)attackType

using System;

// 攻擊類型枚舉
public enum AttackType
{
    Metal,    // 金
    Wood,     // 木
    Water,    // 水
    Fire,     // 火
    Earth,    // 土
    Thunder,  // 雷
    Sword,    // 劍
    None      // 無(wú)
}

然后我會(huì)設(shè)計(jì)palyerManager去讀取預(yù)制體身上實(shí)例的SkillSo文件進(jìn)行相應(yīng)的處理

今天就先分享到這,管他能不能用,先寫了再說文章來源地址http://www.zghlxwxcb.cn/news/detail-705435.html

到了這里,關(guān)于Unity 從0開始編寫一個(gè)技能編輯器_01_分析需求的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 手機(jī)python編輯器怎么用,手機(jī)編寫python的編輯器

    手機(jī)python編輯器怎么用,手機(jī)編寫python的編輯器

    本篇文章給大家談?wù)勈謾C(jī)python3.0編程軟件怎么用,以及手機(jī)python編輯器怎么用,希望對(duì)各位有所幫助,不要忘了收藏本站喔。 Source code download: 本文相關(guān)源碼 大家好,小編來為大家解答以下問題,在手機(jī)上編python程序用什么軟件,手機(jī)寫python編程用哪個(gè)軟件,今天讓我們一起

    2024年04月12日
    瀏覽(20)
  • 企升編輯器word編寫插件

    企升編輯器word編寫插件

    面向用戶群體 招投標(biāo)人員,用統(tǒng)一的模板來編寫標(biāo)書,并最終合并標(biāo)書。 項(xiàng)目經(jīng)理,編寫項(xiàng)目開發(fā)計(jì)劃書,項(xiàng)目驗(yàn)收文檔等。 開發(fā)人員,編寫項(xiàng)目需求規(guī)格說明書、設(shè)計(jì)說明書、技術(shù)總結(jié)等文檔。 其他文檔編寫工作量較多的崗位人員。 文檔編寫遇到的問題 現(xiàn)實(shí)工作中編寫

    2024年02月13日
    瀏覽(29)
  • 【富文本編輯器實(shí)戰(zhàn)】03 Vuex 的配置編寫

    【富文本編輯器實(shí)戰(zhàn)】03 Vuex 的配置編寫

    這里我們來看看官方網(wǎng)站是如何介紹 Vuex 的: 提示 這是與 Vue 3 匹配的 Vuex 4 的文檔。如果您在找與 Vue 2 匹配的 Vuex 3 的文檔,請(qǐng)?jiān)谶@里查看。 Vuex 是一個(gè)專為 Vue.js 應(yīng)用程序開發(fā)的 狀態(tài)管理模式 + 庫(kù) 。它采用集中式存儲(chǔ)管理應(yīng)用的所有組件的狀態(tài),并以相應(yīng)的規(guī)則保證狀態(tài)

    2024年01月22日
    瀏覽(21)
  • 使用文本編輯器sublime text編寫python代碼

    使用文本編輯器sublime text編寫python代碼

    上篇文章介紹了如何安裝python程序,這次就講講如何用sublime來編寫python代碼 有的小伙伴可能會(huì)有疑問,為什么不選擇pycharm來編寫? pycharm寫代碼會(huì)有代碼補(bǔ)全功能,而我們新手正是要在犯錯(cuò)誤的過程中積累經(jīng)驗(yàn),所以呢在前期我們新手最好是使用sublime、notepad、vscode這類的文

    2024年02月11日
    瀏覽(27)
  • Unity編輯器擴(kuò)展 | 編輯器擴(kuò)展基礎(chǔ)入門

    Unity編輯器擴(kuò)展 | 編輯器擴(kuò)展基礎(chǔ)入門

    前言 當(dāng)談到游戲開發(fā)工具,Unity編輯器是一個(gè)備受贊譽(yù)的平臺(tái)。它為開發(fā)者提供了一個(gè)強(qiáng)大且靈活的環(huán)境,使他們能夠創(chuàng)建令人驚嘆的游戲和交互式體驗(yàn)。 然而,Unity編輯器本身也是可以擴(kuò)展和定制的,這為開發(fā)者提供了進(jìn)一步提升工作流程和增強(qiáng)功能的機(jī)會(huì)。 在Unity 編輯器

    2024年02月10日
    瀏覽(88)
  • 【Unity編輯器擴(kuò)展】 | 編輯器擴(kuò)展入門基礎(chǔ)

    【Unity編輯器擴(kuò)展】 | 編輯器擴(kuò)展入門基礎(chǔ)

    前言 當(dāng)談到游戲開發(fā)工具,Unity編輯器是一個(gè)備受贊譽(yù)的平臺(tái)。它為開發(fā)者提供了一個(gè)強(qiáng)大且靈活的環(huán)境,使他們能夠創(chuàng)建令人驚嘆的游戲和交互式體驗(yàn)。 然而,Unity編輯器本身也是可以擴(kuò)展和定制的,這為開發(fā)者提供了進(jìn)一步提升工作流程和增強(qiáng)功能的機(jī)會(huì)。 在Unity 編輯器

    2024年02月10日
    瀏覽(33)
  • 手機(jī)編寫python的編輯器,手機(jī)python3.8編程軟件

    手機(jī)編寫python的編輯器,手機(jī)python3.8編程軟件

    大家好,本文將圍繞手機(jī)python3.0編程軟件怎么用展開說明,手機(jī)編寫python的編輯器是一個(gè)很多人都想弄明白的事情,想搞清楚手機(jī)python3.8編程軟件需要先了解以下幾個(gè)事情。 這篇文章主要介紹了手機(jī)python編輯器中顏色函數(shù)用法,具有一定借鑒價(jià)值,需要的朋友可以參考下。希

    2024年02月01日
    瀏覽(25)
  • Unity 可視化節(jié)點(diǎn)編輯器(GraphView、編輯器擴(kuò)展)

    Unity 可視化節(jié)點(diǎn)編輯器(GraphView、編輯器擴(kuò)展)

    ??前幾天把導(dǎo)師的項(xiàng)目打包發(fā)布交了一稿,這半個(gè)星期除了再把項(xiàng)目縫縫補(bǔ)補(bǔ)外(說實(shí)話項(xiàng)目做到后邊實(shí)在有些無(wú)聊,都是些瑣碎的東西而且自己也學(xué)不到什么,純粹是 浪費(fèi) 消磨時(shí)間)無(wú)聊逛Unity商店發(fā)現(xiàn)了個(gè)有意思的東西,說實(shí)話一開始我以為只是單純繪制的2D動(dòng)畫:

    2024年02月12日
    瀏覽(43)
  • 前端 富文本編輯器原理——從javascript、html、css開始入門

    前端 富文本編輯器原理——從javascript、html、css開始入門

    大家好,我是yma16,本文分享關(guān)于前端 富文本編輯器原理——從javascript、html、css開始。 富文本編輯器 富文本編輯器是指具有格式化文本和圖像編輯功能的文本編輯器 參考文檔:https://w3c.github.io/selection-api/#abstract 全局屬性 contenteditable 是一個(gè)枚舉屬性,表示元素是否可被用

    2024年02月08日
    瀏覽(29)
  • Unity編輯器紫色

    紫色原因是因?yàn)榫庉嬈鲀?nèi)跑了其他平臺(tái)的shader兼容性導(dǎo)致的,需要?jiǎng)討B(tài)的去修改shader,主要用到Unity的api :? Shader.Find(shaderName); 具體的工具代碼如下: Shader的添加形式大概有兩種: 跟隨AssetBundle 打進(jìn)包里面,可以直接使用 ? ? ? 自建材質(zhì) ?

    2024年02月03日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包