로블록스 에디터 화면

기획과 같이 큐브를 배치하고 SpawnZone으로 이름을 바꿔주었다.

그리고 콜리전을 꺼서 충돌은 제거하고 시각적으로 확인하기 위해서 컬러는 레드로 바꿔주었다.

 

이제 저 SpawnZone의 범위안에서 적을 생성하는 로직을 작성하면 된다.

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local enemyPrefab = ReplicatedStorage:WaitForChild("Enemy")
local spawnInterval = 1
local spawnZones ={workspace.SpawnZoneU,workspace.SpawnZoneD,workspace.SpawnZoneL,workspace.SpawnZoneR}


local function spawnObject()
	local randomZone = spawnZones[math.random(1, #spawnZones)]
	local size = randomZone.Size;
	local position = randomZone.Position;
	
	local randomX = math.random(-size.X/2,size.X/2)
	local randomY = math.random(-size.Y/2, size.Y/2)
	local randomZ = math.random(-size.Z/2, size.Z/2)
	
	local spawnPosition = Vector3.new(position.X+randomX,position.Y+randomY,position.Z+randomZ)
	
	local newObj = enemyPrefab:Clone()
	newObj.Position = spawnPosition
	newObj.Parent = workspace
	print("Object spawned at: " .. tostring(randomZone.Name))
end

while true do
	spawnObject()
	print()
	wait(spawnInterval)
end

 

로블록스는 lua 언어를 사용하는데 lua를 써본적이 없어서 기본적인 언어의 구조와, 로블록스 내부함수들을 같이 이용하는 쪽으로 코드를 작성해보았다.(배열, 반복 사용 등..)

그리고 ReplicatedStorage에 넣은 객체들은 게임상에서는 등장하지 않고 유니티의 프리팹처럼 사용할 수 있는것 같다. 그래서 Prefab으로 사용해보았다.

 

결과

적생성 동작화면

 

생성은 일단 완료했고 다음은 간단한 적의 AI를 만들어야지

+ Recent posts