1. Пользоваться форумом на планшетах и телефонах стало удобнее благодаря Tapatalk

hidden,unhidden

Тема в разделе "MAXScript", создана пользователем jumo, 29 апр 2012.

Модераторы: Savin Denis
  1. jumo

    jumo Активный участник

    С нами с:
    30.01.2009
    Сообщения:
    29
    Симпатии:
    3
    Баллы:
    15
    Всем привет!
    Надеюсь мой вопрос в правильном разделе:

    В сцене два объекта 1 и 2.
    Объект 2 спрятан (hidden).
    При выделении объект 1 объект 2 снова виден (unhidden).
    При снятии выделения с объекта 1 объект 2 снова спрятан.

    Такое вообще возможно ?

    Спасибо.
     
  2. igorznag

    igorznag Знаток

    С нами с:
    23.04.2010
    Сообщения:
    1.256
    Симпатии:
    173
    Баллы:
    65
    Пример:
    1. В новой сцене создаем 2 объекта-Teapot с названием "Teapot01" и "Teapot02".
    2. Запускаем скрипт.
    3. Выделяем объект "Teapot01". Снимаем выделение с объекта "Teapot01".
    Код:
    fn hide_unhide obj1=
    ( if(isvalidnode obj1)then
    ( obj2=getNodeByName "Teapot02"; if(obj1.name=="Teapot01" and obj2!=undefined)then
    ( if(obj1.isSelected==true)then obj2.isNodeHidden=false else (obj2.isNodeHidden=true)
    )))
    deleteAllChangeHandlers id:#igorznag_hide_unhide
    when select objects changes id:#igorznag_hide_unhide obj do hide_unhide obj
     
  3. jumo

    jumo Активный участник

    С нами с:
    30.01.2009
    Сообщения:
    29
    Симпатии:
    3
    Баллы:
    15
    Спасибо за ответ!

    Запускаю скирпт, выделяю Теапот01, показывает ошибку:

    -- Error occurred in <handler>()
    -- Frame:
    -- hide_unhide: undefined
    -- obj: $Teapot01
    >> MAXScript Change Handler Exception: -- Type error: Call needs function or class, got: undefined <<
     
  4. igorznag

    igorznag Знаток

    С нами с:
    23.04.2010
    Сообщения:
    1.256
    Симпатии:
    173
    Баллы:
    65
    Вы изменили код скрипта? Название должно быть "Teapot01", а не "Теапот01".
    Предоставьте скриншот-screenshot (открытого редактора MaxScript с кодом).
     
  5. jumo

    jumo Активный участник

    С нами с:
    30.01.2009
    Сообщения:
    29
    Симпатии:
    3
    Баллы:
    15
    P.S

    я абсолютный "новичок" в maxsript :(
     

    Вложения:

    • 2706577.jpg
      2706577.jpg
      Размер файла:
      350,9 КБ
      Просмотров:
      54
  6. igorznag

    igorznag Знаток

    С нами с:
    23.04.2010
    Сообщения:
    1.256
    Симпатии:
    173
    Баллы:
    65
    Попробуйте так:
    Код:
    obj1=$Teapot01; obj2=$Teapot02; deleteAllChangeHandlers id:#igorznag_hide_unhide
    when select obj1 changes id:#igorznag_hide_unhide do
    if(obj1.isSelected==true)then obj2.isNodeHidden=false else obj2.isNodeHidden=true
     
  7. jumo

    jumo Активный участник

    С нами с:
    30.01.2009
    Сообщения:
    29
    Симпатии:
    3
    Баллы:
    15
    работает!!! Спасибо друг!!:)
     
Модераторы: Savin Denis

Поделиться этой страницей