在Unity中的Inspector中顯示指令碼屬性

2021-10-13 21:33:09 字數 2391 閱讀 8852

unity的wiki.

內聯**片

using unityengine;

using system;

using system.collections;

[attributeusage

( attributetargets.property )

]public

class

exposepropertyattribute

: attribute

using unityeditor;

using unityengine;

using system;

using system.collections;

using system.collections.generic;

using system.reflection;

public

static

class

exposeproperties

editorguilayout.

endhorizontal()

;}editorguilayout.

endvertical()

;}public

static propertyfield[

]getproperties

(system.object obj)}if

(!i***posed)

continue

; serializedpropertytype type = serializedpropertytype.integer;

if(propertyfield.

getpropertytype

(info, out type))}

return fields.

toarray()

;}}public

class

propertyfield

}public string name

}public

propertyfield

(system.object instance, propertyinfo info, serializedpropertytype type)

public system.object getvalue()

public

void

setvalue

(system.object value));

}public type getpropertytype()

public

static bool getpropertytype

(propertyinfo info, out serializedpropertytype propertytype)

if(type ==

typeof

(float))if

(type ==

typeof

(bool))if

(type ==

typeof

(string))if

(type ==

typeof

(vector2))if

(type ==

typeof

(vector3))if

(type.isenum)

// comment out to not expose custom objects/types

//注釋以不公開自定義物件/型別

propertytype = serializedpropertytype.objectreference;

return

true

;//return false;

}}

內聯**片

using unityeditor;

using unityengine;

using system.collections;

/**mytype改為所要顯示屬性的指令碼名稱

*editorforchildclasses: true true則顯示子類元件顯示屬性*/[

customeditor

(typeof

(mytype)

, editorforchildclasses:

true)]

public

class

mytypeeditor

: editor

public override void

oninspectorgui()

}

最後在指令碼中對一些public且可讀可寫的property新增[exposeproperty]

Python中inspect模組的一些認識

學習python時遇到了inspect模組的使用,不甚了解,在此簡要的認識一下。inspect模組主要提供了四種用處 對是否是模組,框架,函式等進行型別檢查。獲取原始碼 獲取類或函式的引數資訊 解析堆疊 這裡我不詳細的敘述這四種用法,噹噹講一下如何使用inspect獲取類或函式的引數資訊。還是通過 ...

C 字典Dictionary在unity中使用案例

c 字典在unity中使用案例 1 前言 講起c dictionary,許多人聞之色變,不了解,不清楚,即使知道,了解,也不一定會用,鑑於此,本人特地總結了乙個使用字典的案例。2 什麼是字典。必須包含名空間system.collection.generic dictionary裡面的每乙個元素都是乙...

單例模式在Unity中的應用

起因 每個遊戲場景中都會有許多的遊戲物件,而各個遊戲場景之間也是同等的關係。如何去管理它們,是我們要解決的問題。場景中各指令碼間的直接訪問,會在各指令碼間形成乙個巨大而又混亂的網路,這給以後 的維護帶來了極大的困難。為了避免這種因互動訪問而帶來的過度耦合情況,我們取消掉場景中各指令碼間的直接互動,取...