An toiseach, cruthaich nì a bhios mar neach-dùbhlain agad. Thoir an neach-dùbhlain agad an latha Namhaid.
Ma bhuaileas an neach-dùbhlain agus am figear, tha taga a ’dèanamh ciall leis gum faod an sgriobt innse nach eil ach nithean leis an tag nàmhaid buntainneach mar luchd-dùbhlain.
Cruthaich sgriobt C # ris an canar "Enemy".
Fosgail an sgriobt ann an Visual Studio. An toiseach feumaidh an neach-dùbhlain fear Corp cruaidh-Co-phàirt:
prìobhaideach rigidbody2D rigidbody;
A-nis feumaidh sinn an gnìomh dùisg. Bidh e gnìomhach beagan ùine mus tòisich e.
falamh Dùisg ()
{
Rigidbody = GetComponent ();
}
A-nis cuir co-phàirt Rigidbody2D ann an Unity ris an neach-dùbhlain.
A-nis slaod an sgriobt ùr air an nàmhaid.
Gluasad an neach-dùbhlain
A-nis tha thu airson gum bi an neach-dùbhlain a ’gluasad ann an stiùireadh sònraichte stèidhichte air astar:
Feumaidh sinn: astar snàmh prìobhaideach
gluasad falamh poblach (stiùireadh Vector 2)
{
body.velocity = Vector2 ùr (speed.x * speed, body.velocity.y);
}
Gus am bi an raon prìobhaideach le fleòdradh prìobhaideach a ’nochdadh anns an neach-sgrùdaidh, cuir air beulaibh e: [SerializeField]
Bu chòir do stiùireadh an neach-dùbhlain atharrachadh:
Feumaidh sinn:
gluasad prìobhaideach Vector2Direction;
A-nis tha na leanas air a dhearbhadh:
gluasadDirection = stiùireadh;
Bidh thu ag iomlaid stiùireadh.x le gluasadDirection.x.
Feumaidh tu a ’ghnìomh ùrachaidh gus stiùireadh atharrachadh:
Gluasad (gluasadDirection);
An dèidh gluasad ann an aon taobh, tillidh an neach-dùbhlain an taobh eile.
Am bualadh le luchd-dùbhlain
A bharrachd air an sin, feumaidh an neach-dùbhlain "tubaist a lorg".
àite falamh prìobhaideach OnCollisionEnter2D (bualadh Collision2D)
{
ma tha (collision.gameObject.CompareTag ("Namhaid"))
{
gluasadDirection * = -1f;
}
Cuir a-steach na leanas mar gluasadDirection anns a ’ghnìomh dùisg:
gluasadDirection = Vector2.right;
Tha feum aige air aon fhathast Collider. Cuir inneal-losgaidh 2D co-ionnan ris.
Cuir 2na collider nas lugha ris an earrann gu h-àrd den neach-dùbhlain. Bu chòir an 2na collider a bhith na bhrosnachadh cuideachd. Tha an collider air a dhealbhadh gus cuir às don neach-dùbhlain nuair a bhios an cluicheadair a ’leum air.
Naimhdean a ’sìolachadh
Dèan briogadh deas ann an uinneag na rangachd gus rud falamh a chruthachadh agus ainmeachadh mar neach-sìolachaidh.
Bidh na nàimhdean a ’nochdadh, a rèir stiùireadh an t-sìolachaidh. An ath rud feumaidh sinn SpawnerScript.
Annta tha thu a ’mìneachadh coltas an luchd-dùbhlain.
An toiseach feumaidh sinn:
[SerializeField]
Tron SerializeField, nochd na prefabs gu dìreach aig an sìoladair.
nàmhaid prìobhaideach [] nàimhdean;
Feumaidh tu an caochladair cuideachd:
[SerializeField]
sìolachadh prìobhaideach floTTimeDelay, startSpawnDelay;
Le seo bidh sinn a ’suidheachadh an ùine sìolachaidh agus na h-amannan eadar sìolachadh.
Feumaidh sinn cuideachd:
bool poblach crìochnaichte;
Bidh e a ’suidheachadh an neach-dùbhlain mu dheireadh airson an sìoladair. Tha manaidsear a ’gheama air“ stiùireadh ”an luchd-sìolachaidh. Tha an earrann chrìochnaichte a ’sònrachadh gu bheil an ìre air a chrìochnachadh nuair nach eil barrachd nàimhdean san t-sealladh agus luchd-sìolachaidh nan nàimhdean uile air an cur a-steach don ìre.
A-nis tha feum air coroutine airson na nàimhdean a shìolachadh.
Bu chòir don luchd-dùbhlain gluasad ann an stiùireadh sònraichte cuideachd.
Mu dheireadh, bu chòir sgrùdadh a dhèanamh air an deach an sìolachadh a chrìochnachadh.
Tha feum air àireamhaiche airson an coroutine. Bidh Unity a’ làimhseachadh coroutines a-steach chùl. Bidh iad cuideachd a 'tachairt anns a h-uile frèam:
sìolachadh prìobhaideach IEnumerator ()
A-nis thathar ag iarraidh air an t-siostam feitheamh grunn dhiog no dhà airson an neach-dùbhlain nochdadh:
toradh a ’tilleadh WaitForSeconds () ùr;
Tha sinn a ’feitheamh ri startSpawnDeley:
toradh a ’tilleadh WaitForSeconds ùra (startSpawnDelay);
Airson an fhiosrachaidh ùine feumaidh sinn:
airson (int i = 0; i <faid; i ++)
Bu chòir do gach neach-dùbhlain àireamh sònraichte ath-shuidheachadh an dèidh ùine sònraichte.
Sin as coireach gu bheil cuideachd: nàimhdean.Lenght:
airson (int i = 0; i <nàimhdean.Lenght; i ++)
A-nis feumar iomradh a thoirt don neach-dùbhlain:
Namhaid nàmhaidInstance = Instantiate (nàimhdean [i], cruth-atharrachaidh.position);
Tha Transform.position ag innse don t-siostam gum bu chòir don neach-dùbhlain nochdadh aig an t-sìoladair.
Tha Quaternion.identity a ’toirt iomradh air an cuairteachadh.
Namhaid nàmhaidInstance = Instantiate (nàimhdean [i], cruth-atharrachaidh.position, Quaternion.identity);
Faodar gluasad an neach-dùbhlain a mhìneachadh nas mionaidiche:
namhaidInstance.Move (translate.right);
Bidh sinn a ’cur toradh ùr WaitforSeconds (SpawnTimeDelay) air ais; aon uair eile, an turas seo le SpawnTimeDelay.
Tha seo a ’ciallachadh, a h-uile uair a nochdas nàmhaid, bidh Aonachd a’ feitheamh ris an ùine shònraichte sin gus an ath shìolachadh.
Mu dheireadh, feumaidh an siostam dèanamh cinnteach gu bheil an sìolachadh deiseil:
crìochnaichte = i> = nàimhdean.Lenght - 1;
Mu dheireadh, feumar an Coroutnie a thòiseachadh:
tòiseachadh falamh ()
{
StartCoroutine (Spawn ());
}
Bu chòir an sgriobt mu dheireadh airson sìolachadh a bhith mar seo:
Anns an sgriobt sìolachaidh ceangailte faodaidh tu a-nis tricead sìolachaidh a shuidheachadh:
Faodaidh tu a-nis an luchd-dùbhlain a shlaodadh agus a leigeil a-steach do sgriobt Spawner: