- Рейтинг
- 17
Приветствую. Через утилиту создается свой хелпер, на котором при создании навешиваются скрипты работающие при его перемещении. Не получается привязать callback when transform сразу к создаваемому объекту, а потом что бы этот параметр сохранялся при записывании/открытии файла, пример кода ниже:
---
plugin Helper TestHelper
name:"TestHelper"
classID:#(0x5a1b2412, 0x1e8d2f12)
category:"Standard"
extends:dummy
(
local meshObj, theMesh, MyObject
parameters pblock rolloutarams
(
size type:#float animatable:true ui:size default:1.0
)
rollout params "TestHelper"
(
spinner size "Size:" range:[0, 1e9, 1]
)
on getDisplayMesh do
(
if theMesh == undefined then
(
local vertsArray = #( [0,0,0], [size,0 ,0], [size,size ,0], [0,size,0])
local facesArray = #([1,2,3], [3,4,1])
local edgeVis = #( #(true,true,false), #(true,true,false))
meshObj = mesh verticesfor v in vertsArray collect v*size) faces:facesArray
for face = 1 to edgeVis.count do
for i = 1 to 3 do
setEdgeVis meshObj face i edgeVis[face]
theMesh = copy meshObj.mesh
delete meshObj
if MyObject==undefined do MyObject=selection[1]
when transform MyObject change id:#Volume do print MyObject.name
)
else
(
)
theMesh
)
tool create
(
on mousePoint click do
(
size=10
#stop
)
)
)
----
Насколько я понимаю проблема в переменной MyObject, присвоение ей текущего/создаваемого хелпера и сохранения в сцене/файле.
---
plugin Helper TestHelper
name:"TestHelper"
classID:#(0x5a1b2412, 0x1e8d2f12)
category:"Standard"
extends:dummy
(
local meshObj, theMesh, MyObject
parameters pblock rolloutarams
(
size type:#float animatable:true ui:size default:1.0
)
rollout params "TestHelper"
(
spinner size "Size:" range:[0, 1e9, 1]
)
on getDisplayMesh do
(
if theMesh == undefined then
(
local vertsArray = #( [0,0,0], [size,0 ,0], [size,size ,0], [0,size,0])
local facesArray = #([1,2,3], [3,4,1])
local edgeVis = #( #(true,true,false), #(true,true,false))
meshObj = mesh verticesfor v in vertsArray collect v*size) faces:facesArray
for face = 1 to edgeVis.count do
for i = 1 to 3 do
setEdgeVis meshObj face i edgeVis[face]
theMesh = copy meshObj.mesh
delete meshObj
if MyObject==undefined do MyObject=selection[1]
when transform MyObject change id:#Volume do print MyObject.name
)
else
(
)
theMesh
)
tool create
(
on mousePoint click do
(
size=10
#stop
)
)
)
----
Насколько я понимаю проблема в переменной MyObject, присвоение ей текущего/создаваемого хелпера и сохранения в сцене/файле.