Create a ticket
Follow

Q100385: கட்டாவில் கால்பேக்ஸ் மற்றும் நிகழ்வு கையாளர்கள்

பொழிப்பும்

இந்த கட்டுரையில் காபனாவில் callbacks அல்லது event handlers ஐ எவ்வாறு பதிவு செய்யலாம் மற்றும் கிடைக்கப்பெறும் அழைப்பு மற்றும் நிகழ்வு வகைகள் மற்றும் எதிர்பார்த்த உள்ளீடு வாதங்களைப் பற்றிய தகவலை எங்கே பெறுவது பற்றிய விபரங்களை வழங்குகிறது.
Callbacks மற்றும் நிகழ்வுகள் பற்றிய ஆவணம் Katana டெவலப்பர் கையேட்டில் காணலாம் . கீழே கொடுக்கப்பட்டுள்ள கட்டுரையில் அவர்கள் நடைமுறைப்படுத்தப்படும் சில நடைமுறை உதாரணங்கள் கொடுக்கின்றன.

மேலும் தகவல்

ஒரு கோரிக்கை என்பது கடனா சூழலுக்குத் தானாகவே இயங்கும் பைத்தானின் குறியீடாகும், அது பல்வேறு நிகழ்வுகள் (ஒரு முனை உருவாக்கம் அல்லது ஒரு ஸ்கிரிப்ட் ஏற்றுதல் போன்றவை) கட்டாவில் நடக்கும்போது தானாக இயங்கும்.

ஒரு நிகழ்வை ஒரு பயனர் நடவடிக்கை அல்லது ஒரு சுட்டியை கிளிக் போன்ற மற்றொரு மூல விளைவாக ஏற்படுகிறது, அல்லது ஒரு விசையை அழுத்தும். நிகழ்வை கையாளுதல் ஒரு நிகழ்வை சமாளிக்க பயன்படுகிறது, இது நிகழும் போது செயல்படுத்தப்படும் குறியீட்டை எழுத ஒரு புரோகிராமர் அனுமதிக்கிறது ( https://www.computerhope.com/jargon.htm இன் வரையறைகள்).

சில சூழ்நிலைகளில் கட்டாக்கள் தூண்டுகின்றன (எ.கா. ஒரு கோப்பை சேமிப்பதற்கு முன்பு) மற்றும் அழைப்பு குறியீடு தொடர்வதற்கு முன்னர் நிறைவேற்றப்பட வேண்டிய கோரிக்கைக்காக காத்திருக்கிறது, உதாரணமாக பயனர் அதை சேமிப்பதற்கு முன்பு திட்டத்தை மாற்றியமைக்க அனுமதிக்கிறது.

மாறாக, நிகழ்வுகள் கட்டான நிகழ்வு நிகழ்வு மூலம் "பின்னர்" செயல்படுத்தப்பட்டு செயலாக்கப்பட்டன. அதாவது callbacks இன்னும் உடனடியாக இருக்கும், ஆனால் அவை பொதுவாக மிக வேகமாக இருக்க வேண்டும் அல்லது அவர்கள் வேலை செய்யும் போது UI ஐ முடக்கலாம்.

ஒரு புதிய கட்டான திட்டத்தை உருவாக்கும்போது அல்லது குறிப்பிட்ட முனை அளவுருக்களின் மதிப்பு மாற்றங்களைச் செயல்படுத்துகையில், திட்டவட்ட அமைப்புகளை மாற்றியமைக்கலாம்.

கால்பேக்குகளாக

கட்டானில், துவக்க மென்பொருட்கள், ஏற்றப்பட்ட கதானா திட்டம் அல்லது ஒரு முனை உருவாக்கப்படுதல் போன்ற வெவ்வேறு சூழ்நிலைகளுக்கு callbacks கிடைக்கின்றன. கிடைக்கக்கூடிய callbacks இன் முழு பட்டியலைப் பார்க்க, தயவு செய்து பின்வரும் குறியீட்டை Python தாவலில் இயக்கவும்:

from Katana import Callbacks
print dir(Callbacks.Type)


ஒவ்வொரு கோரிக்கை வகைக்கு முக்கிய சொற்கள் வாதங்கள் அனுப்பப்படுவதைக் கண்டுபிடிக்க, பின்வருமாறு அழைப்பின்போது பதிவு செய்யலாம், இது அழைக்கப்படும் போது உள்ளீட்டு விவாதங்களை அச்சிடலாம்:

def Hello(**kwargs):
    for i in kwargs.keys():
        print i


இந்த வாதங்கள் கோரிக்கை செயல்பாட்டிற்குள் அணுகலாம், எடுத்துக்காட்டாக பின்வருமாறு:

def Hello(**kwargs):
   print(kwargs.get('filename'))

from Katana import Callbacks Callbacks.addCallback(Callbacks.Type.onSceneLoad, Hello)

நிகழ்வு ஹேண்டலர்ஸ்

பதிவு செய்யப்பட்ட ஹேண்டலர்ஸ் கேட்கும் பல கட்டட நிகழ்வுகளில் உள்ளன. எல்லா நிகழ்வு நிகழ்வுகளின் பட்டியலைப் பார்க்க, தயவு செய்து கீழ்க்காணும் பைத்தான் தாவலில் இயக்கவும்:

import Utils.EventModule
print Utils.EventModule.GetAllRegisteredEventTypes()

ஒவ்வொரு நிகழ்வு வகையிலும் எந்த உள்ளீட்டு வாதங்கள் உள்ளன என்பதைக் கண்டறிய, நீங்கள் ஒரு குறிப்பிட்ட நிகழ்விற்கான பின்வரும் கையாளரைப் பதிவு செய்யலாம். நிகழ்வு தூண்டப்படும்போது, கையாளுபவர் வாதங்களை அச்சிடுவார்:

def eventHandler(eventType, eventID, **kwargs):
    for i in kwargs.keys():
        print i


உள்ளீடு வாதங்கள் அறியப்பட்டவுடன், அவர்கள் நிகழ்வு கையாளுதல் செயல்பாட்டில் பயன்படுத்தலாம். பின்வரும் நிகழ்வு நிகழ்வு கையாளுதல் என்பது பயனரின் முன்னுரிமைகளில் மாற்றங்களைக் கேட்க பதிவு செய்யக்கூடியது, மேலும் இது முன்னுரிமை மற்றும் அதன் புதிய மதிப்பின் பெயரை அச்சிடும்:

def PrefChangedCallback(eventType, eventID, prefKey, prefValue):
    print prefKey, "preference changed to:", prefValue

Utils.EventModule.RegisterEventHandler(PrefChangedCallback, 'pref_changed')

முனை அளவுரு மாற்றங்களுக்கான நிகழ்வு கையாளுனர்

ஒரு நிகழ்வு கையாளுதல் செயல்பாடு, எடுத்துக்காட்டாக, ஒரு குறிப்பிட்ட முனை அளவுருவின் மாற்றத்திற்கு மட்டுமே பதிலளிக்க வேண்டும் என்றால், அது ' parameter_finalizeValue ' நிகழ்வைக் கேட்க பதிவு செய்ய முடியும். மாற்றியமைக்கப்பட்ட அளவுருவின் பெயரை கையாளல் செயல்பாடுக்குள் சரிபார்க்கப்படலாம்.

def myParamCallback(eventType, eventID, node, param):
    if (node.getName() == "CameraCreate") and (param.getName() == 'fov'):
        print("FOV for the following camera changed to " + repr(param.getValue(0)) + ": " + node.getParameter('name').getValue(0))

Utils.EventModule.RegisterEventHandler(myParamCallback, "parameter_finalizeValue")

நிகழ்வு வரிசையாக்கம் செய்யப்பட்ட பின்னர் நிகழ்வு கையாளர்கள் உடனடியாக நிறைவேற்றப்படவில்லை. ஏதாவது குறியீடு செயல்படுத்தப்பட்டிருந்தால், குறிப்பிட்ட நிகழ்வைச் செயல்படுத்தும்போது, நிகழ்வின் கையாளப்பட்டால், கீழ்கண்டவாறு தேவைப்படும்.

Utils.EventModule.ProcessAllEvents() 


Callbacks மற்றும் நிகழ்வு கையாளர்கள் பற்றிய மேலும் தகவலுக்கு , எங்கள் கட்டுனா டெவலப்பர் கையேட்டில் கால்பேக்ஸ் மற்றும் நிகழ்வுகள் பகுதியைப் பார்க்கவும்.

கட்டா தொடக்கத்தில் கால்பேக்குகள் அல்லது நிகழ்வைக் கையாளர்கள் பதிவு செய்தல்


கட்டா பின்வருமாறு தொடங்கும் போது கால்பேக்குகள் அல்லது நிகழ்வு கையாளர்கள் தானாக பதிவு செய்யப்படலாம்:

  • உங்கள் கோரிக்கை அல்லது நிகழ்வு கையாளுதல் செயல்பாடு ஒரு பைதான் செயல்பாட்டில் செய்ய வேண்டும் மற்றும் கீழே உள்ள எடுத்துக்காட்டு குறியீட்டில் இது நிரூபிக்கப்பட வேண்டும் என நீங்கள் விரும்பும் எல்லா செயல்களையும் வரையறுக்கவும்:

from Katana import Utils, Callbacks

def PrefChangedCallback(eventType, eventID, prefKey, prefValue):
    print prefKey, "preference changed to:", prefValue

Utils.EventModule.RegisterEventHandler(PrefChangedCallback, 'pref_changed')
def Hello(**kwargs): print(kwargs.get('filename'))
Callbacks.addCallback(Callbacks.Type.onSceneLoad, Hello) 

  • இதை நகலெடுத்து ஒரு உரை எடிட்டரில் ஒட்டவும், கோப்பை சேமிக்கவும்.

  • கோப்பு மறுபெயரிடுவது init.py மற்றும் கோப்பு நீட்டிப்பு என்று சரிபார்க்க, உங்கள் கோப்பு உலாவியில் கோப்பு நீட்டிப்புகள் காட்டப்படும் என்பதை உறுதிப்படுத்தவும். PDF மற்றும் not .txt அல்லது வேறு.

  • கோப்பு KATANA கோப்புறையில் அல்லது KATANA_RESOURCES சூழல் மாறியில் வரையறுக்கப்பட்ட ஒரு பாதையில் ஒரு தொடக்க கோப்புறையில் வைக்கவும் .


பற்றிய மேலும் தகவலுக்கு KATANA _RESOURCES, தொடர்புடைய தலைப்பை பார்க்கவும் Katana ஆன்லைன் உதவி .

அடுத்த முறை கத்தனை துவக்கப்படுகிறது, குறிப்பிட்ட நிகழ்வை ஏற்படுத்தும் போது கோரிக்கை செயல்பாடு நிறைவேற்றப்படும் மற்றும் நிகழ்வின் கவுண்டரில் செயல்படுவதால், நிகழ்வின் நிகழ்வு வரிசைப்படுத்தப்பட்டு செயலாக்கப்பட்டிருக்கும். மேற்கண்ட உதாரணத்தில், முன்னுரிமை மாற்றப்பட்டால் அல்லது கட்டா திட்டத்தை ஏற்றும்போது, புதிய விருப்ப மதிப்பு அல்லது திட்ட கோப்பு பாதை முனையத்தில் அச்சிடப்படும்.

மேலும் உதவி


உங்கள் அழைப்புகள் அல்லது நிகழ்வின் ஹேண்டலர்களை அமைப்பதில் ஏதேனும் சிக்கல்களை எதிர்கொண்டிருந்தால், தயவுசெய்து ஒரு ஆதரவு டிக்கட்டைத் திறந்து, சிக்கலைப் பற்றி தெரிந்துகொள்ளவும், இதுவரை நீங்கள் எடுத்துக் கொண்ட பழுதுபார்க்கும் வழிமுறைகளையும் தெரிந்து கொள்ளவும்.


ஒரு ஆதரவு டிக்கெட் திறக்க எப்படி மேலும் தகவலுக்கு, Q100064 பார்க்கவும் : ஒரு ஆதரவு டிக்கெட் உயர்த்த எப்படி

Was this article helpful?
/

We're sorry to hear that!

Please tell us why.
2 out of 2 found this helpful

Comments