기획과 같이 큐브를 배치하고 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를 만들어야지
'Roblox' 카테고리의 다른 글
[로블록스]디펜스 게임 만들기 - 3 Enemy AI (0) | 2024.12.30 |
---|---|
[로블록스]디펜스 게임 만들기 - 1 기획 (1) | 2024.12.29 |
[로블록스]갑자기 로블록스 시작하기 (0) | 2024.12.29 |