At the bottom of the post are some demo scripts, copy them into your script editor and execute them. Then to see the counter going, run countingFunction;
You will see some debug text in the output window;
times pressed this session 2
times pressed forever 18
To reset the count for the current session run resetSession;
The key elements here are intialising the optionVar. ,
if (`optionVar -exists "myVar"`)
{
$returnVal = `optionVar -query "myVar"`; //If the optionVar exists then return the value
} else optionVar -intValue "myVar" 0; //If the optionVar doesn't exists then make one
The current session count is held in the global variable named global int $countingFunctionVal; If this variable is declared within any other script, the current value will be available to that procedure. Many of Maya's main UI elements are declared as global variables in this way so items such as the graph editor, channelbox and time slider can be accessed easily.
The demo scripts:
global proc int countingFunctionTotal()
{
int $returnVal;
if (`optionVar -exists "runCount"`)
{
$returnVal = `optionVar -query "runCount"`;
}
return $returnVal;
}
global proc int countingFunctionAdd()
{
//if optionVar -iv "runCount" 4 -sv "defaultFileName" "buffalo.maya";
int $returnVal;
if (`optionVar -exists "runCount"`)
{
$returnVal = `optionVar -query "runCount"`;
$returnVal ++;
optionVar -intValue "runCount" $returnVal;
} else optionVar -intValue "runCount" 1;
return $returnVal;
}
global proc countingFunction()
{
global int $countingFunctionVal;
int $totalCound = `countingFunctionAdd`;
$countingFunctionVal++;
print ("times pressed this session " + $countingFunctionVal + "\ntimes pressed forever " + $totalCound +"\n");
}
global proc resetSession()
{
global int $countingFunctionVal;
$countingFunctionVal = 0;
}
No comments:
Post a Comment