Խնդրի լուծման միայն մեկ լուծում չկա. Խնդիրները լուծելու բազմաթիվ եղանակներ կան։
Վերանայելով 2D Space Shooter նախագիծը: Ես որոշ առաջադրանքներ էի անցնում և որոշեցի աշխատել Enemy Shields-ի ներդրման վրա:
Նպատակը. Թշնամու վահանի վարքագիծ ստեղծել ստեղծագործական և եզակի ձևով, որպեսզի այն աշխատի փորձությունների և սխալների և բազմաթիվ փորձարկումների միջոցով:
Այս գործընթացը սկսելու համար ես կրկնօրինակեցի իմ Player Shield GameObject-ը:
Մենք մտնելու ենք Enemy Prefab և մեր նոր թշնամու վահանը դարձնելու ենք ծնող թշնամու երեխային:
Թշնամու վահանի վարքագծի իրականացում:
The Enemy Shield-ը պետք է ունենա իր սեփական սցենարը կցված:
Եկեք բաժանենք այն, ինչ մեզ անհրաժեշտ է Թշնամու վահան տրամաբանությունը ստեղծելու համար:
- OnTriggerEnter2D-ի բախման հայտնաբերում
- Առողջության քանակի փոփոխականը սահմանված է ամբողջ աշխարհում
- Հղում PlayerProjectileդասի սցենարին
- Բաղադրիչի մուտք դեպի Rigidbody2D
- GameObjectսկրիպտը կցված է
Հիմա եկեք տեսնենք, թե ինչպես եմ այս կոնկրետ համակարգը աշխատել:
Ես կարողացա ստեղծագործորեն մոտենալ այս սցենարին, և ինչ-որ կերպ ես չգիտեի, թեստավորումից հետո, որ սա այս գործառույթն իրականացնելու եղանակներից մեկն է:
Բացի այդ, մենք պետք է տեսնենք՝ արդյոք մյուս gameObject-ի պիտակը կհայտնաբերվի PlayerProjectile-ի կողմից:
Եթե մենք դա հաջողությամբ արեցինք, մենք պետք է ստանանք PlayerProjectile սցենարի ժառանգությունը:
Այստեղից մենք ստանում ենք Rigidbody2D բաղադրիչը և անցնում հատկությունների մեջ.
- collisionDetectionMode = collisionDetectionMode.Continous (Ապահովում է, որ բոլոր բախումները հայտնաբերվում են, երբ Rigidbody2D-ը շարժվում է)
- collisionDetectionMode = collisionDetectionMode: Դիսկրետ (Միայն բախումները հայտնաբերվում են, երբ Rigidbody2D-ը տեղափոխվում է նոր դիրք)
Օգտագործելով դիսկրետ հատկությունը՝ այն հիանալի աշխատեց իմ իրականացման համար. Եվ ես վստահ եմ, որ կան շատ այլ ուղիներ այս նույն հատկությունն իրականացնելու համար: