Unity 3d Instantiate prefabs og Health

Awia
Level 3 - Infant
Posts: 31
Joined: 23 Mar 2011, 12:52

Unity 3d Instantiate prefabs og Health

Unread post by Awia » 23 Aug 2011, 14:43

Hej alle

Jeg er igang med at lave mit eget lille spil i Unity og er meget ny til c#

Jeg har lavet en "EnemySpawner" som står for at instantiate forskellige prefab enemies randomly hvert tredje sekund. Hver enkelt type enemy har et vist antal Healthpoints (indtil videre bare en værdi) som hver gang de bliver ramt af mit projectile så mister de 1 fra den værdi.

Jeg er nu kommet frem til en funktion der kan fjerne 1 health point og når health points når 0 bliver objektet der er ramt Destroyet.
Problemet er at jeg har 3 typer enemies og indtil videre så deler hver type enemy healthpoints (da hver af dem har et script) hvilket ikke giver nogen mening for spillet.

Er dette fordi pga denne sætning?

Code: Select all

Instantiate(Enemy1Prefab,transform.position,Quaternion.identity);
eller hvordan kan jeg komme ind i scriptet for hver enkelt enemy clone og kun sørge for at det er deres individuelle healthpoints der ryger ned og ikke alle de andre af samme type?

Undskyld hvis det er forvirrende

ps jeg har ledt efter en måde at løse problemet på men har ikke været succesfuld

Awia
Level 3 - Infant
Posts: 31
Joined: 23 Mar 2011, 12:52

Re: Unity 3d Instantiate prefabs og Health

Unread post by Awia » 23 Aug 2011, 16:15

btw Spillet minder meget om det spil 3dbuzz har en tutorial på (2d shooter), bare med flere forskellige typer(prefabs) enemies og flere af samme slags på skærmen på en gang

+ kan det være fordi variablen EnemyHealth er static og hvordan laver jeg en objectreference hvis den ikke er static?

Awia
Level 3 - Infant
Posts: 31
Joined: 23 Mar 2011, 12:52

Re: Unity 3d Instantiate prefabs og Health

Unread post by Awia » 23 Aug 2011, 16:58

Nå jeg klarede sgu problemet på egen hånd :) skulle bare lige lære at lave en reference :)

User avatar
joe
Level 0 - Null
Posts: 3
Joined: 09 Jan 2012, 00:05

Re: Unity 3d Instantiate prefabs og Health

Unread post by joe » 09 Jan 2012, 00:41

Hej, jeg skriver lige alligevel selv om du har fundet ud af det...

jeg ville give projektilet et tag(fx "projektil") og så alt efter om projektilet er en trigger eller collider ville tjekke i OnTriggerEnter eller OnCollisionEnter og gøre hvad der skal gøres.

Code: Select all

void OnTriggerEnter(Collider other) {   
    // Kig om projektilet rammer enemy'en
	if(other.collider.tag == "projektil" ){
         // Kig om den skal trække fra i liv eller dø
        if(healthPoints == 1){
            Destroy(gameObject);   
        }else{
        	healthPoints--;
		}
	}
}
måske kan du bruge det til noget.. eller nogen andre

User avatar
joe
Level 0 - Null
Posts: 3
Joined: 09 Jan 2012, 00:05

Re: Unity 3d Instantiate prefabs og Health

Unread post by joe » 09 Jan 2012, 00:44

og ja.. have en private variable healthPoints..

Post Reply