栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Maya Python-使用UI中的数据

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Maya Python-使用UI中的数据

您应该使用字典:

myDic = {}myDic["anyString"] = "Value, String, Tuples,...etc"print myDic

使用dic的好处是您不必担心嵌套变量。

为了展示字典的功能,我还添加了一个函数

createWeaponUI()

如果在选择Shotgun的情况下单击“
Continue”,它将使用createWeaponUI()创建一个手枪//弹枪UI。您只需要

storedDataDic["weqponYouWant_preset"]
在顶部为每种武器添加即可生成所需的任何ui。相比于复制/粘贴50个UI并使用50
if / elif来告诉您应该使用哪种武器ui,它更容易阅读。

这是您使用dic修改的脚本:

import maya.cmds as cmdsfrom functools import partialstoredDataDic = {}storedDataDic["weapon"] = ["Pistol", "Shotgun", "SMG", "Sniper Rifle", "RPG"]storedDataDic["weaponSelected"] = storedDataDic["weapon"][0]storedDataDic["Shotgun_preset"] = [(1,4,2), (1,50,25)]storedDataDic["Pistol_preset"] = [(1,18,2), (1,25,10)]if (cmds.window("Bullet_Spray_Generator", exists = True)):     cmds.deleteUI("Bullet_Spray_Generator")if (cmds.window("BSG2", exists = True)):     cmds.deleteUI("BSG2")cmds.select(all=True)cmds.delete()def goShoot(numOfShots, distToTarget, *pArgs):     print "Begin"    cmds.deleteUI("BSG2")    createWall()def cancelShoot(*pArgs):    print "cancel"    cmds.deleteUI("Bullet_Spray_Generator")def createWall():    cmds.select(all=True)    cmds.delete()    wall = cmds.polyCube(h=10, w=15, d=1, name='wall')    cmds.move(0,5,0, 'wall')def createGunUI(gunType, *pArgs):    if (gunType == 'Pistol'):        createWeaponUI()    elif (gunType == 'Shotgun'):        createWeaponUI()    elif (gunType == 'SMG'):        createSMGUI()    elif (gunType == 'Sniper Rifle'):        createSniperUI()    elif (gunType == 'RPG'):        createRPGUI()    else:        print "Something went wrong"        cancelShoot()def createPistolUI():    cmds.window("Pistol")    cmds.columnLayout(adjustableColumn=True)    cmds.deleteUI("Bullet_Spray_Generator")    NumBulletsCtrl = cmds.intSliderGrp(label='Number of Shots',    minValue=1, maxValue=9, value=4, field=True)    DistCtrl = cmds.intSliderGrp(label='Distance to Target (metres)',     minValue=1, maxValue=50, value=25, field=True)    cmds.button(label = "Fire", command = lambda *args: goShoot(cmds.intSliderGrp(NumBulletsCtrl,     query=True, value=True), cmds.intSliderGrp(DistCtrl, query=True, value=True), ))    cmds.button(label = "Cancel", command = cancelShoot)    cmds.showWindow("Pistol")def createShotgunUI():    cmds.window("Shotgun")    cmds.columnLayout(adjustableColumn=True)    cmds.deleteUI("Bullet_Spray_Generator")    NumBulletsCtrl = cmds.intSliderGrp(label='Number of Shots',    minValue=1, maxValue=4, value=2, field=True)    DistCtrl = cmds.intSliderGrp(label='Distance to Target (metres)',     minValue=1, maxValue=50, value=25, field=True)    cmds.button(label = "Fire", command = lambda *args: goShoot(cmds.intSliderGrp(NumBulletsCtrl,     query=True, value=True), cmds.intSliderGrp(DistCtrl, query=True, value=True), ))    cmds.button(label = "Cancel", command = cancelShoot)    cmds.showWindow("Shotgun")def createSMGUI():    cmds.window("SMG")    cmds.columnLayout(adjustableColumn=True)    cmds.deleteUI("Bullet_Spray_Generator")    NumBulletsCtrl = cmds.intSliderGrp(label='Number of Shots',    minValue=1, maxValue=20, value=4, field=True)    DistCtrl = cmds.intSliderGrp(label='Distance to Target (metres)',     minValue=1, maxValue=50, value=25, field=True)    cmds.button(label = "Fire", command = lambda *args: goShoot(cmds.intSliderGrp(NumBulletsCtrl,     query=True, value=True), cmds.intSliderGrp(DistCtrl, query=True, value=True), ))    cmds.button(label = "Cancel", command = cancelShoot)    cmds.showWindow("SMG")def createSniperUI():    cmds.window("Sniper")    cmds.columnLayout(adjustableColumn=True)    cmds.deleteUI("Bullet_Spray_Generator")    NumBulletsCtrl = cmds.intSliderGrp(label='Number of Shots',    minValue=1, maxValue=2, value=2, field=True)    DistCtrl = cmds.intSliderGrp(label='Distance to Target (metres)',     minValue=1, maxValue=50, value=25, field=True)    cmds.button(label = "Fire", command = lambda *args: goShoot(cmds.intSliderGrp(NumBulletsCtrl,     query=True, value=True), cmds.intSliderGrp(DistCtrl, query=True, value=True), ))    cmds.button(label = "Cancel", command = cancelShoot)    cmds.showWindow("Sniper")def createRPGUI():    cmds.window("RPG")    cmds.columnLayout(adjustableColumn=True)    cmds.deleteUI("Bullet_Spray_Generator")    NumBulletsCtrl = cmds.intSliderGrp(label='Number of Shots',    minValue=1, maxValue=1, value=1, field=True)    DistCtrl = cmds.intSliderGrp(label='Distance to Target (metres)',     minValue=1, maxValue=50, value=25, field=True)    cmds.button(label = "Fire", command = lambda *args: goShoot(cmds.intSliderGrp(NumBulletsCtrl,     query=True, value=True), cmds.intSliderGrp(DistCtrl, query=True, value=True), ))    cmds.button(label = "Cancel", command = cancelShoot)    cmds.showWindow("RPG")def printNewMenuItem(item):    print item    storedDataDic["weaponSelected"] = item    return storedDataDic["weaponSelected"]def ui_refreshSelWeapon(fun, *args):    createGunUI(storedDataDic["weaponSelected"])def createUI():     cmds.window("Bullet_Spray_Generator")    cmds.columnLayout(adjustableColumn=True)    GunSelectCtrl = cmds.optionMenu(label='Gun', changeCommand=printNewMenuItem)    for i in storedDataDic["weapon"]:        cmds.menuItem(label=i)    cmds.button(label = "Continue", command = ui_refreshSelWeapon)    cmds.button(label = "Cancel", command = cancelShoot)    cmds.showWindow("Bullet_Spray_Generator")createUI()weapon_uiDic = {}def createWeaponUI():    weaponName = storedDataDic["weaponSelected"]    if cmds.window(weaponName, exists=True):        cmds.deleteUI(weaponName)    cmds.window(weaponName)    cmds.columnLayout(adjustableColumn=True)    cmds.deleteUI("Bullet_Spray_Generator")    nbP= storedDataDic[weaponName + "_preset"][0]    dcP = storedDataDic[weaponName + "_preset"][1]    weapon_uiDic["NumBulletsCtrl"] = cmds.intSliderGrp(label='Number of Shots',    minValue=nbP[0], maxValue=nbP[1], value=nbP[2], field=True)    weapon_uiDic["DistCtrl"] = cmds.intSliderGrp(label='Distance to Target (metres)',     minValue=dcP[0], maxValue=dcP[1], value=dcP[2], field=True)    weapon_uiDic["fireButton"] = cmds.button(label = "Fire", command = lambda *args: goShoot(cmds.intSliderGrp(weapon_uiDic["NumBulletsCtrl"],     query=True, value=True), cmds.intSliderGrp(weapon_uiDic["DistCtrl"], query=True, value=True)))    cmds.button(label = "Cancel", command = cancelShoot)    cmds.showWindow(weaponName)

- -编辑 - -

我预设了手枪以使其更清晰



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/624152.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号