質問:
1 度に 1 つのオブジェクトだけを表示し、他のオブジェクトはすべて非表示にするボタンを作成したいと考えています。ボタンを押すごとに、シーン オブジェクトを巡回し、次のオブジェクトを表示させる必要があります。
回答:
次に解決方法を示します。
スクリプト:
|
macroScript showNext category: "MXS Help"
(
local current_object = 0 --これは macroScript に対してローカルです。
on execute do
(
allObjects = objects as array --collect all objects
hide $* --すべてのオブジェクトを非表示にします。
current_object += 1 --カウンタを加算します。
if current_object > allObjects.count do --必要に応じてループします。
current_object = 1
if allObjects.count > 0 do --シーンに何かが存在する場合
unhide allObjects[current_object]
-- 現在のオブジェクトを表示します。
)
)
|
次のスクリプトも同じですが、アルファベット順にオブジェクトを表示するように変更されています。
MAXScript:
|
macroScript showNextABC category:"MXS Help"
(
local current_object = 0 --これは macroScript に対してローカルです。
on execute do
(
-- すべてのオブジェクトを収集します。
allObjectNames = sort( for i in objects collect i.name )
hide $* --すべてのオブジェクトを非表示にします。
current_object += 1 --カウンタを加算します。
if current_object > allObjectNames.count do --必要に応じてループします。
current_object = 1
if allObjectNames.count > 0 do --シーンに何かが存在する場合
unhide getNodeByName allObjectNames[current_object]
-- 名前によってオブジェクトを取得して非表示にします。
)
)
|