巴哈姆特

首頁 哈啦區 Unity3D 遊戲引擎

【討論】Script宣告變數格式可以像Particle系統那樣更多樣化嗎

追蹤話題

【討論】Script宣告變數格式可以像Particle系統那樣更多樣化嗎

問題求解
我哪知 (a034818467) 2020-01-27 07:28:44
#1
如題

Script宣告的public變數可以像Particle格式那樣豐富嗎?
讓每個變數提供下拉選單有固定值或亂數範圍可以選

不然我每個變數都要自己多宣告兩行RandX,RandY ?
整個格式會很不方便閱讀
浪濤書記: B1 2020-01-27 07:35

下拉選單可以用enum,固定範圍可以用Attribute達成

樂小呈: B2 2020-01-27 12:50

如果要像particle那樣可以下拉選單,然後UI換不同變量的話,就要用custom editor去設計

樂小呈: B3 2020-01-27 12:50

但那超麻煩ㄉ

仌冰仌: B4 2020-01-28 16:55

[a034818467:我哪知]

Canis: B5 2020-01-29 04:55

概然對 EditorGUI 有要求, 當然是學習 Custom editor啊.

Canis (canistk) 2020-01-29 05:12:34
#2
※ 引述《a034818467 (我哪知)》之銘言

自訂 property 其實不太難.
https://learn.unity.com/tutorial/editor-scripting/?tab=detail
https://learn.unity.com/tutorial/property-drawers-and-custom-inspectors

你也可以到我的工具箱裡下載一些來玩.
https://bitbucket.org/canistk/kit/src/master/Editor/
自訂好之後你可以這樣來宣告 enum

像這樣...
using UnityEngine;
using Kit;

public class Test : MonoBehaviour
{
    [System.Flags]
    public enum TestEnum
    {
        OptionA = 1 << 0,
        OptionB = 1 << 1,
        OptionC = 1 << 2,
        OptionD = 1 << 3,
    }
    
    // https://bitbucket.org/canistk/kit/src/master/Editor/MaskFieldDrawer.cs
    [MaskField(typeof(TestEnum))] TestEnum myTestEnum = 0;
    
    // https://bitbucket.org/canistk/kit/src/master/Editor/MinMaxSliderDrawer.cs
    [MinMaxSlider(-1f,1f)] Vector2 TestMinMaxRange = Vector2.zero;
    
    // Find more on https://bitbucket.org/canistk/kit/src/master/Editor/
}

MaskField, 就可以配 enum 做多選的 bit mask 選項.
MinMaxSlider 可以配 Vector2 做一個固定範圍的滑扞....etc
還有些超入門的 ReadOnlyDrawer, HelpDrawer.. 之類的小東西.

小的日誌上也有記錄一些偏門一點的作品.
TagField. https://www.clonefactor.com/wordpress/program/unity3d/1708/
TextField + AutoComplete https://www.clonefactor.com/wordpress/program/c/1809/
Vector2 + 表情Enum (毫無實用價值的玩物)
https://www.clonefactor.com/wordpress/program/unity3d/1818/

不過其肯付錢的坊間也有些不錯用的 inspector 加強工具包.
https://assetstore.unity.com/packages/tools/utilities/odin-inspector-and-serializer-89041

看較舊的 1 則留言

Canis: B2 2020-01-30 23:30

甚麼是「UI做動作改變UI」

我哪知: B3 2020-01-30 23:59

外行不清楚要怎麼稱呼 貼個GIF https://i.imgur.com/SucVwbB.gif

Canis: B4 2020-01-31 10:04

把它看成2個部份,右邊的箭頭是一個選擇enum,中間是一個或2個float,animationCurve. 依enum切換

Canis: B5 2020-01-31 10:06

自訂一個struct打包,再給這個struct訂一套property dtawer 即可完成. 問題是使用時也必須依enum判斷該用那一組設定

Canis: B6 2020-01-31 10:10

這個沒有甚麼語法,只是看你如何把功能做出來的東西.就是custom editor/property drawer的理解及實作

延伸閱讀

問題請問關於Particle System的Trigger 的問題

2020-02-23 20:09:09

問題[新手問題, 2D PLATFORMER], 分開了數個SCRIPT, 如何能夠共通資料

2020-11-29 17:35:41

心得如何用Unity Particle簡易的製作閃電

2019-11-27 12:09:08

閒聊Unity Particle的重要性

2017-03-26 14:38:12

不同視角有不一樣的感受

看更多

【心得】0-1轉秘境副本攻略(坦補視角)

出發吧麥芬

【閒聊】伊利恩在別的玩家視角下是不是很像外掛?

新楓之谷

【劇情抑鬱注意】神奇寶貝-命運之光 栞子&雫主視角章節集合 更新至43章 掌心遞來的溫暖

LoveLive!

電梯
開啟 APP

face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】