간단한 프로토타입용 스포너 스크립트 구현.
간단한 프로토타입용 스폰 스크립트.
Zombie : 스폰 될 게임오브젝트 등록.
Time Spawn : 다음 스폰 리스트 인터벌.
Enemy Count : 스폰 시킬 적의 최대 수.
Spawn Pos : 스폰 될 위지.
Tag Name : 스폰 된 게임오브젝트에 사용자 Tag 입히기. - > 이건 씬 안에서 해당 테크를 검사 하여 현재 씬 안의 타입별 적이 몇인지를 알기 위한 테그.
Offset X : 스폰 포지션 x 벡터에 대한+ 렌덤 변수 (- , +)
Offset Z : 스폰 포지션 z 벡터에 대한 + 렌덤 변수 (- , +)using UnityEngine;
using System.Collections;
//using System.Collections.Generic;
public enum ZombieTagList { Melee , Dash , Boss };
public class SpawnerZombie : MonoBehaviour {
public GameObject Zombie;
private float timetemp = 0;
public float timeSpawn = 3;
public int enemyCount = 0;
public Transform spawnPos;
public ZombieTagList TagName = ZombieTagList.Melee;
private Vector3 offsetVctor;
public float offsetX , offsetZ;
void Start ()
{
if(spawnPos == null)spawnPos = GetComponent(typeof(Transform)) as Transform;
if(renderer)
renderer.enabled = false;
timetemp = Time.time;
GameObject go = new GameObject();
go.gameObject.tag = TagName.ToString();
Zombie.tag = go.tag;
}
void Update ()
{
GameObject[] gos = GameObject.FindGameObjectsWithTag(Zombie.tag);
if(gos.Length < enemyCount)
{
if(Time.time > timetemp+timeSpawn)
{
timetemp = Time.time;
OffsetVectorFunc ();
GameObject.Instantiate(Zombie , (spawnPos.position + offsetVctor) , Quaternion.AngleAxis(-90,Vector3.up));
}
}
}
protected void OffsetVectorFunc()
{
offsetVctor = new Vector3 ();
offsetVctor.x = Random.Range(-offsetX , offsetX);
offsetVctor.z = Random.Range(-offsetZ , offsetZ);
}
}
Game Developer Leegoon copyright all right reserved since 2010.



Comments
Post a Comment
덧글쓰기 기능 있는거 아시죠? ㅋㅋ