RoomGen Documentation
Page 1

RoomGen - Procedural
Generator
RoomGen - Thủ tục
Máy phát điện
First, thank you for your purchase! Being able to build software and tools to support other
developers like you is one of my passions!
Đầu tiên, cảm ơn bạn đã mua hàng! Có khả năng xây dựng phần mềm và công cụ để hỗ trợ người khác
những nhà phát triển như bạn là một trong những niềm đam mê của tôi!
If at any time while using these tools you encounter issues, or have any suggestions or feature
requests, please email me at angularfoxdev@gmail.com
Nếu bất kỳ lúc nào trong khi sử dụng những công cụ này bạn gặp phải sự cố hoặc có bất kỳ đề xuất hoặc tính năng nào
yêu cầu, xin vui lòng gửi email cho tôi theo địa chỉ Angularfoxdev@gmail.com
Getting Started
Bắt đầu
RoomGen was intended to be as user-friendly as possible, saving you valuable time while giving you
the creative power to customize as you like.
RoomGen được thiết kế nhằm thân thiện với người dùng nhất có thể, giúp bạn tiết kiệm thời gian quý báu đồng thời mang lại cho bạn
sức mạnh sáng tạo để tùy chỉnh theo ý muốn.
Right click in the Hierarchy window and create an empty gameObject.
Nhấp chuột phải vào cửa sổ Phân cấp và tạo một gameObject trống.
Reset the transform and position so the RoomGenerator is at 0,0,0.
Đặt lại biến đổi và vị trí để RoomGenerator ở mức 0,0,0.
Add the RoomGenerator component.
Thêm thành phần RoomGenerator.
You can see now there are a whole bunch of customization options so you can tweak your
results as much as you’d like.
Bạn có thể thấy bây giờ có rất nhiều tùy chọn tùy chỉnh để bạn có thể điều chỉnh
kết quả nhiều như bạn muốn.
Expand the Levels foldout. Click the plus button to add a new level. RoomGen puts together
buildings from the ground up. Level 0 will be your ground floor, level 1 will be the next floor up,
etc.
Mở rộng thư mục Cấp độ. Nhấp vào nút dấu cộng để thêm cấp độ mới. RoomGen kết hợp với nhau
các tòa nhà từ mặt đất lên. Cấp 0 sẽ là tầng trệt của bạn, cấp 1 sẽ là tầng tiếp theo,
v.v.
We’ll cover the customization options for levels later on. Next, we need a preset!
Chúng tôi sẽ đề cập đến các tùy chọn tùy chỉnh cho các cấp độ sau này. Tiếp theo, chúng ta cần một cài đặt trước!
Creating Presets
Tạo cài đặt trước
Presets are the driving force behind this tool. Presets allow you to create rooms using a nondestructive workflow and easily return to combinations of items you frequently use. This means with
a simple drag and drop, you can create as many room combinations you can imagine.
Các cài đặt trước là động lực đằng sau công cụ này. Các cài đặt trước cho phép bạn tạo phòng bằng quy trình làm việc không phá hủy và dễ dàng quay lại tổ hợp các mục bạn thường sử dụng. Điều này có nghĩa là với
chỉ cần kéo và thả đơn giản, bạn có thể tạo bao nhiêu cách kết hợp phòng mà bạn có thể tưởng tượng.
Page 2
Right click in the Project window and select Create > Room Generator > Room Preset
Nhấp chuột phải vào cửa sổ Project và chọn Create > Room Generator > Room Preset
Name the preset to whatever you’d like. This name will be copied to the saved prefabs later on.
Đặt tên cho cài đặt trước theo bất cứ điều gì bạn muốn. Tên này sẽ được sao chép vào các prefab đã lưu sau này.
Drag the preset you just created into both the Level 0 preset slot, and the Preset slot in the
Preset Editor section of the RoomGenerator component in the scene.
Kéo giá trị đặt trước mà bạn vừa tạo vào cả khe đặt sẵn Cấp 0 và khe Đặt sẵn trong
Phần Trình chỉnh sửa cài sẵn của thành phần RoomGenerator trong cảnh.
Now we are ready to customize!
Bây giờ chúng tôi đã sẵn sàng để tùy chỉnh!
Customizing Presets
Tùy chỉnh cài đặt trước
Per-object settings within presets gives you complete control on how your room turns out.
Cài đặt theo từng đối tượng trong các cài đặt trước cho phép bạn kiểm soát hoàn toàn cách căn phòng của mình diễn ra.
The Preset Editor Component
Thành phần soạn thảo cài sẵn
Select the RoomGenerator object you created earlier. The Preset Editor Component gets
automatically added to any GameObject with a generator component. The Preset Editor can
be added to any type of RoomGen generator, including TargetGenerators. Changes made
using the Preset Editor will make changes live to the generator component it is attached to.
For other generators in your scene, you will just need to hit the “Generate” button to see the
preset changes carry over to that object. You can have multiple preset editor components in a
scene!
Chọn đối tượng RoomGenerator bạn đã tạo trước đó. Thành phần soạn thảo cài sẵn được
tự động được thêm vào bất kỳ GameObject nào có thành phần trình tạo. Trình chỉnh sửa cài sẵn có thể
được thêm vào bất kỳ loại trình tạo RoomGen nào, bao gồm cả TargetGenerators. Những thay đổi đã thực hiện
việc sử dụng Trình chỉnh sửa cài sẵn sẽ thực hiện các thay đổi trực tiếp đối với thành phần trình tạo mà nó được đính kèm.
Đối với các trình tạo khác trong cảnh của bạn, bạn chỉ cần nhấn nút “Tạo” để xem
những thay đổi đặt trước sẽ được chuyển sang đối tượng đó. Bạn có thể có nhiều thành phần soạn thảo cài sẵn trong một
cảnh!

You will see a list of expandable
options. Here, we will decide which
game objects make up our room.
As you fill these values in, you will
see your room start to take shape
instantly in the editor window.
Making changes within the Preset
Editor saves the preset at the same
time, so as you make changes they
will be saved for later use.
Bạn sẽ thấy một danh sách có thể mở rộng
tùy chọn. Ở đây chúng ta sẽ quyết định cái nào
đồ vật trò chơi tạo nên căn phòng của chúng tôi.
Khi bạn điền các giá trị này vào, bạn sẽ
hãy xem căn phòng của bạn bắt đầu thành hình
ngay lập tức trong cửa sổ soạn thảo.
Thực hiện các thay đổi trong Preset
Trình chỉnh sửa lưu cài đặt trước cùng một lúc
theo thời gian, vì vậy khi bạn thực hiện thay đổi, chúng
sẽ được lưu lại để sử dụng sau.
Any change you make in the Preset
Editor will only effect the Levels
that use this preset.
Bất kỳ thay đổi nào bạn thực hiện trong Preset
Trình chỉnh sửa sẽ chỉ ảnh hưởng đến Cấp độ
sử dụng cài đặt trước này.
Expand the Floors section, and the
Walls section. Click the plus to add
a new element.
Mở rộng phần Tầng và
Phần tường. Bấm vào dấu cộng để thêm
một phần tử mới.
Drag and Drop your floor/wall prefabs into the Prefab slots. You should see your room start to
take shape.
Kéo và thả các nhà lắp ghép trên sàn/tường của bạn vào các khe Nhà lắp ghép. Bạn sẽ thấy phòng của bạn bắt đầu
thành hình.
Page 3
Weight: This field determines the probability of that specific tile being generated in your room.
Weights are relative to the other tiles in their category. A higher weight has a higher chance of
being generated.
Trọng số: Trường này xác định xác suất ô cụ thể đó được tạo trong phòng của bạn.
Trọng lượng có liên quan đến các ô khác trong danh mục của chúng. Cân nặng cao hơn có nguy cơ cao hơn
đang được tạo ra.
These are two of the most important factors when creating your
rooms. If for some reason your room isn’t lining up, adjust these first!
Position Offset: field can be used if you need to compensate for non-uniform object origins.
Rotation Offset: field can be used to rotate your tiles in case they are not lining up, or if they
don’t fit within the bounding box.
Đây là hai trong số những yếu tố quan trọng nhất khi tạo ra
phòng. Nếu vì lý do nào đó mà phòng của bạn không được xếp hàng, hãy điều chỉnh những thứ này trước!
Bù vị trí: trường có thể được sử dụng nếu bạn cần bù cho nguồn gốc đối tượng không đồng nhất.
Bù xoay: trường có thể được sử dụng để xoay các ô của bạn trong trường hợp chúng không xếp hàng hoặc nếu chúng
không vừa với hộp giới hạn.

Random Rotation: Floor and roof
tiles have the option to allow a
random number of rotations. This
value can be set from 0 to 3, where 0
means no rotation, 1 is one 90º
rotation, 2 is two 90º rotations and so
on.
Xoay ngẫu nhiên: Sàn và mái
ô có tùy chọn để cho phép
số vòng quay ngẫu nhiên. Cái này
giá trị có thể được đặt từ 0 đến 3, trong đó 0
có nghĩa là không quay, 1 là một 90°
xoay, 2 là hai phép quay 90 độ và như vậy
trên.
Allow Decor: If you want to allow
decor/props to be populated on this
tile, check this box.
Allow Decor: Nếu bạn muốn cho phép
trang trí/đạo cụ được đưa vào đây
gạch, hãy đánh dấu vào ô này.
Align to Surface: If you have uneven
shaped floor tiles like dirt mounds for
instance, and you want to make sure
props align with the ground, check
this box. RoomGen will raycast
across this tile to align props with the
surface.
Căn chỉnh với bề mặt: Nếu bạn có bề mặt không đồng đều
gạch lát sàn có hình dạng giống như ụ đất cho
ví dụ, và bạn muốn chắc chắn
đạo cụ thẳng hàng với mặt đất, kiểm tra
cái hộp này. RoomGen sẽ phát sóng
trên ô này để căn chỉnh các đạo cụ với
bề mặt.
Tile Layer: This should match the
layer you assigned to the floor tile
prefab. This is only required if you
have checked the Surface alignment
box.
Lớp Ngói: Lớp này phải phù hợp với
lớp bạn đã gán cho gạch lát sàn
prefab. Điều này chỉ được yêu cầu nếu bạn
đã kiểm tra căn chỉnh bề mặt
hộp.
Important: RoomGen relies on the
wall, floor and door tiles to be the
same size. Floor and wall
decorations can be any size
however.
Quan trọng: RoomGen dựa vào
gạch lát tường, sàn và cửa là
cùng kích thước. Sàn và tường
đồ trang trí có thể có kích thước bất kỳ
tuy nhiên.
Next, expand the Window and Door
Tiles Sections. These are optional. If you need, you can generate rooms with no doors or
windows.
Tiếp theo, mở rộng Cửa sổ và Cửa ra vào
Phần gạch. Đây là tùy chọn. Nếu cần, bạn có thể tạo các phòng không có cửa hoặc
cửa sổ.
Click the plus to add a new element. Follow the same steps as before.
Nhấp vào dấu cộng để thêm phần tử mới. Thực hiện theo các bước tương tự như trước đây.
Page 4
Tip: if you are using Synty Studios assets specify a -2.5 value in the x direction for your doors.
(Half the door width). You should see them line up in the doorways.
Mẹo: nếu bạn đang sử dụng nội dung Synty Studios, hãy chỉ định giá trị -2,5 theo hướng x cho cửa của bạn.
(Một nửa chiều rộng cửa). Bạn sẽ thấy họ xếp hàng ở các ô cửa.
Decorations
đồ trang trí
Here’s where things get interesting!
Đây là nơi mọi thứ trở nên thú vị!
Expand one of the foldouts in the decorations section. You will see a bunch of different options
to control how each individual object type is placed. Drag and drop your prefab into the Prefab
slot. You should see a preview appear of the prefab, and the item get populated in your scene.
Mở rộng một trong các nếp gấp trong phần trang trí. Bạn sẽ thấy một loạt các tùy chọn khác nhau
để kiểm soát cách đặt từng loại đối tượng riêng lẻ. Kéo và thả prefab của bạn vào Prefab
khe cắm. Bạn sẽ thấy bản xem trước của prefab xuất hiện và mục này sẽ được đưa vào cảnh của bạn.
RoomGen splits GameObjects up into 3 categories: Characters, Floor Decorations and Wall
Decorations. These categories only apply to how these objects are placed, and their respective
seeds.
RoomGen chia GameObject thành 3 loại: Nhân vật, Đồ trang trí sàn và Tường
Đồ trang trí. Các danh mục này chỉ áp dụng cho cách các đối tượng này được đặt và các mục tương ứng của chúng.
hạt giống.
Technically, any GameObject can be populated in each category. Be creative! If you have a
character that needs to pop out of a wall, place it in the WallDecorations section and give it a
little Z offset. This will make it look like its coming out of the wall!
Về mặt kỹ thuật, bất kỳ GameObject nào cũng có thể được đưa vào từng danh mục. Hãy sáng tạo! Nếu bạn có một
nhân vật cần bật ra khỏi bức tường, hãy đặt nó vào phần WallDecorations và tạo cho nó một
độ lệch Z nhỏ. Điều này sẽ làm cho nó trông giống như nó bước ra khỏi tường!

Position Offset: Position spacing
specific to this object. This
helps if your object is clipping
through walls or floors when the
room is generated.
Experiment with these values!
For instance, if you want
chandeliers or hanging lights,
create a floor decoration, and
set the y value to a higher
number, like 10, and it will
create lights above the floor!
Bù vị trí: Khoảng cách vị trí
cụ thể cho đối tượng này. Cái này
giúp ích nếu đối tượng của bạn bị cắt
xuyên qua tường hoặc sàn nhà khi
phòng được tạo ra.
Hãy thử nghiệm với những giá trị này!
Ví dụ, nếu bạn muốn
đèn chùm hoặc đèn treo,
tạo ra một trang trí sàn nhà, và
đặt giá trị y lên cao hơn
số, như 10, và nó sẽ
tạo ra ánh sáng phía trên sàn nhà!
Rotation Offset: Apply a
specific rotation offset to this
object.
Bù Xoay: Áp dụng một
bù đắp xoay vòng cụ thể cho điều này
đối tượng.
Object Spacing
Spacing: This value determines
the minimum amount of space
between objects of this same
type. Say you want torches to
line your walls, but you don’t
want them right next to each other. Increasing this value will space them apart.
Khoảng cách đối tượng
Khoảng cách: Giá trị này xác định
lượng không gian tối thiểu
giữa các đối tượng giống nhau
loại. Nói rằng bạn muốn ngọn đuốc
xếp dọc các bức tường của bạn, nhưng bạn không
muốn họ ở ngay cạnh nhau. Việc tăng giá trị này sẽ khiến chúng cách xa nhau.
Safe Area: this value determines the minimum amount of space required in a perimeter around
the object, where no other decoration can be placed. As you increase this value, if you have
debug mode on, you will see the decor placement points (green spheres) turn red around this
object type indicating that no other decoration can be placed here.
Vùng an toàn: giá trị này xác định lượng không gian tối thiểu cần thiết trong chu vi xung quanh
đồ vật, nơi không thể đặt vật trang trí nào khác. Khi bạn tăng giá trị này, nếu bạn có
bật chế độ gỡ lỗi, bạn sẽ thấy các điểm vị trí trang trí (quả cầu màu xanh lá cây) chuyển sang màu đỏ xung quanh đây
loại đối tượng chỉ ra rằng không thể đặt vật trang trí nào khác ở đây.
Page 5
Vertical Range: This determines the height range that this object can be placed on this Level.
Each Level of your building starts at a value of zero and counts up from there. An easy way to
set a max height is to turn on the Debug feature and count the number of points.
Phạm vi dọc: Xác định phạm vi chiều cao mà đối tượng này có thể được đặt ở Cấp độ này.
Mỗi Cấp độ của tòa nhà của bạn bắt đầu ở giá trị 0 và tăng dần từ đó. Một cách dễ dàng để
đặt chiều cao tối đa là bật tính năng Gỡ lỗi và đếm số điểm.
Amount Range: This range determines the MIN and MAX number of this object that will be
placed into your scene, with the exception that there is a valid number of points. (ex. you have
a 1x1 room, and set this to 10000, there won’t be enough room for all of those objects,
RoomGen handles this automatically.) If you want an exact number of objects set these two
numbers to the same value.
Phạm vi Số lượng: Phạm vi này xác định số MIN và MAX của đối tượng này sẽ
được đặt vào cảnh của bạn, ngoại trừ việc có một số điểm hợp lệ. (ví dụ: bạn có
một phòng 1x1 và đặt giá trị này thành 10000, sẽ không có đủ chỗ cho tất cả những đồ vật đó,
RoomGen tự động xử lý việc này.) Nếu bạn muốn có số lượng đối tượng chính xác, hãy đặt hai đối tượng này
số có giá trị như nhau.
Random Rotation: How much this object can be rotated. RoomGen sets a random value
between 0 and this selected number.
Xoay ngẫu nhiên: Đối tượng này có thể được xoay bao nhiêu. RoomGen đặt giá trị ngẫu nhiên
giữa 0 và số được chọn này.
Scale Range: The smallest (x) and largest (y) this object can be created in relation to its original
size.
Phạm vi tỷ lệ: Đối tượng nhỏ nhất (x) và lớn nhất (y) mà đối tượng này có thể được tạo so với đối tượng ban đầu của nó
kích thước.
Levels
Cấp độ
Levels make customization really easy! You can set specific presets for each level of your
building. This is nice if you want a boss level on the lowest floor, and you want weak enemies
only on the top floor.
If you decide you want to rearrange the building, simply drag the level above or below another
and your room will reorganize itself.
Now that you’ve added walls, floors, and decorations, you should see a complete room in the
SceneView. Let’s dive into the Level parameters to further customize your room.
Cấp độ làm cho việc tùy chỉnh thực sự dễ dàng! Bạn có thể đặt các cài đặt trước cụ thể cho từng cấp độ của bạn
tòa nhà. Điều này thật tuyệt nếu bạn muốn cấp độ trùm ở tầng thấp nhất và bạn muốn kẻ thù yếu
chỉ ở tầng trên cùng.
Nếu bạn quyết định muốn sắp xếp lại tòa nhà, chỉ cần kéo cấp độ lên trên hoặc xuống dưới cấp độ khác
và căn phòng của bạn sẽ tự tổ chức lại.
Bây giờ bạn đã thêm tường, sàn và đồ trang trí, bạn sẽ thấy một căn phòng hoàn chỉnh trong
SceneView. Hãy đi sâu vào các thông số Cấp độ để tùy chỉnh thêm căn phòng của bạn.
As you change property values in the inspector, you should see your room update in real-time
in the editor.
Khi thay đổi giá trị thuộc tính trong trình kiểm tra, bạn sẽ thấy phòng của mình cập nhật theo thời gian thực
trong trình soạn thảo.
Preset: This is where you will drag and
drop your created presets. Every level can
have its own preset!
Đặt trước: Đây là nơi bạn sẽ kéo và
bỏ các cài đặt trước đã tạo của bạn. Mọi cấp độ đều có thể
có cài đặt trước riêng của mình!

Level Height: This is how tall this specific
level will be. This effects how many
windows vs doors will be placed if for
instance you have a single story level.
Level Height: Đây là độ cao cụ thể của nó
mức độ sẽ được. Điều này có tác dụng bao nhiêu
cửa sổ và cửa ra vào sẽ được đặt nếu
Ví dụ: bạn có một cấp độ câu chuyện duy nhất.
Level Offset: This offsets the entire level by
the specified amount. Use this if you have
rectangular walls that are clipping with the
next floor up, or if you want to give your
building/dungeon some horizontal variance.
Bù đắp cấp độ: Điều này bù đắp toàn bộ cấp độ bằng
số tiền quy định. Hãy sử dụng cái này nếu bạn có
những bức tường hình chữ nhật được cắt bằng
tầng tiếp theo, hoặc nếu bạn muốn đưa ra
xây dựng/ngục tối một số phương sai theo chiều ngang.
Num Doors: This is the number of doors your room can have. Doors override windows in
importance, so if for some reason your windows don’t show up, you may have too many doors,
or your window height should be set to a different level!
Num Doors: Đây là số lượng cửa mà phòng bạn có thể có. Cửa ra vào đè lên cửa sổ trong
tầm quan trọng của nó, vì vậy nếu vì lý do nào đó cửa sổ của bạn không hiển thị thì có thể bạn có quá nhiều cửa ra vào,
hoặc chiều cao cửa sổ của bạn nên được đặt ở một mức khác!
Page 6
Num Windows: This is how many windows your room will have. RoomGen will only let you set
a max number of windows per walls in your room. Ex. If your room is 2x2 your max windows
will be 8 because you have 8 walls.
Num Windows: Đây là số lượng cửa sổ mà phòng của bạn sẽ có. RoomGen sẽ chỉ cho phép bạn thiết lập
số lượng cửa sổ tối đa trên mỗi bức tường trong phòng của bạn. Bán tại. Nếu phòng của bạn có kích thước 2x2, cửa sổ tối đa của bạn
sẽ là 8 vì bạn có 8 bức tường.
Window Height: This is the height of your windows in tiles. Ex. If you have a 2 story room, you
can have windows up to 2 units high.
Chiều cao cửa sổ: Đây là chiều cao của cửa sổ tính theo ô. Bán tại. Nếu bạn có một căn phòng 2 tầng, bạn
có thể có cửa sổ cao tới 2 căn.
Character Seed: This lets you change the characters in a room without effecting the rest of the
room settings. This is also useful if you have a particular room configuration you like, you can
change and return to this seed to get the same character configuration.
Room Seed: This lets you change the walls/floors/doors/windows in a room without effecting
the decorations. This is also useful if you have a particular room configuration you like, you can
change and return to this seed to get the same room configuration.
Decor Seed: Same as the room seed, but this will change up the decorations in a room
without effecting the room layout. Useful if you need different decor with the same door/
window layout.
Hạt giống ký tự: Điều này cho phép bạn thay đổi các ký tự trong phòng mà không ảnh hưởng đến phần còn lại của phòng.
cài đặt phòng. Điều này cũng hữu ích nếu bạn có một cấu hình phòng cụ thể mà bạn thích, bạn có thể
thay đổi và quay lại hạt giống này để có cấu hình ký tự tương tự.
Room Seed: Điều này cho phép bạn thay đổi tường/sàn/cửa ra vào/cửa sổ trong phòng mà không ảnh hưởng đến
các đồ trang trí. Điều này cũng hữu ích nếu bạn có một cấu hình phòng cụ thể mà bạn thích, bạn có thể
thay đổi và quay lại hạt giống này để có được cấu hình phòng tương tự.
Hạt giống trang trí: Tương tự như hạt giống trong phòng, nhưng nó sẽ thay đổi đồ trang trí trong phòng
mà không ảnh hưởng đến cách bố trí phòng. Hữu ích nếu bạn cần trang trí khác nhau với cùng một cánh cửa/
bố trí cửa sổ.
The Main Structure
Cấu trúc chính
Adjustments made to these parameters will effect every level within your building.
Những điều chỉnh được thực hiện đối với các thông số này sẽ ảnh hưởng đến mọi cấp độ trong tòa nhà của bạn.
GridX: This is how many tiles large your room will be in the X direction.
GridZ: This is how many tiles large your room will be in the Z direction.
GridX: Đây là số lượng gạch lớn mà căn phòng của bạn sẽ có theo hướng X.
GridZ: Đây là số lượng gạch lớn mà căn phòng của bạn sẽ có theo hướng Z.
Tile Size: Set this value to how large your wall/floor/doors tiles are in units. For instance, Synty
Studios tiles are typically 2.5 or 5 units large.
Kích thước ô: Đặt giá trị này cho biết kích thước gạch tường/sàn/cửa ra vào của bạn tính theo đơn vị. Ví dụ: Synty
Gạch studio thường có kích thước lớn 2,5 hoặc 5 đơn vị.

Page 7
In the example below, the room has two Levels set up each with the same preset. The first floor
is set to a level height of 2 to make it a little taller than the top floor.
Trong ví dụ bên dưới, phòng có hai Cấp độ được thiết lập, mỗi Cấp độ có cùng cài đặt trước. Tầng đầu tiên
được đặt ở mức độ cao là 2 để làm cho nó cao hơn tầng trên cùng một chút.

Level presets let you determine exactly what spawns on each floor. Above, a general preset
was created, then duplicated and adjusted to add more treasure chests on the top floor.
Cài đặt trước cấp độ cho phép bạn xác định chính xác những gì sẽ xuất hiện ở mỗi tầng. Ở trên, một cài đặt trước chung
được tạo ra, sau đó được nhân bản và điều chỉnh để bổ sung thêm nhiều rương kho báu ở tầng trên cùng.
Floor Decoration Offset: Same as the wall decorations, this is a global variable that moves all
the floor decorations upward, so they don’t clip through the floor. This works in conjunction
with the Y Offset within the decoration preset.
Wall Decoration Offset: If you notice your wall decorations are clipping through the walls, this
is a global variable that will move all decorations away from the walls. This works in
conjunction with the forward offset variable within the decoration preset.
Phần bù trang trí sàn: Tương tự như phần trang trí trên tường, đây là biến toàn cục di chuyển tất cả
các đồ trang trí trên sàn hướng lên trên để chúng không cắt xuyên qua sàn. Điều này hoạt động kết hợp
với Y Offset trong cài đặt trước trang trí.
Bù đắp trang trí tường: Nếu bạn nhận thấy đồ trang trí trên tường của bạn đang cắt xuyên qua các bức tường, điều này
là một biến toàn cục sẽ di chuyển tất cả đồ trang trí ra khỏi tường. Điều này hoạt động trong
kết hợp với biến offset chuyển tiếp trong cài đặt trước trang trí.
Decor Safe Area: This is a useful variable that will move decorations away from the walls and
more towards the center of the room.
Khu vực an toàn trang trí: Đây là một biến hữu ích sẽ di chuyển đồ trang trí ra khỏi tường và
hướng về trung tâm của căn phòng nhiều hơn.


Page 8
Point Spacing: This value determines how closely packed your decorations will be in relation
to your tile size. Normally a value of 1 will give adequate breathing room. If you have a small
tile size, like 1, adjusting this up to 3 or more is a good idea in order to have more dense
decorations. Changing this value effects the point density of decorations, so your Vertical
Range for each decoration will also become more compact.
Khoảng cách điểm: Giá trị này xác định mức độ sắp xếp chặt chẽ các đồ trang trí của bạn trong mối liên hệ
theo kích thước gạch của bạn. Thông thường giá trị 1 sẽ cho đủ không gian thở. Nếu bạn có một cái nhỏ
kích thước ô, như 1, điều chỉnh kích thước này lên đến 3 hoặc nhiều hơn là một ý tưởng hay để có mật độ dày đặc hơn
đồ trang trí. Việc thay đổi giá trị này sẽ ảnh hưởng đến mật độ điểm của các trang trí, do đó, Chiều dọc của bạn
Phạm vi cho mỗi đồ trang trí cũng sẽ trở nên nhỏ gọn hơn.
Debug: This can be a very useful toggle if you want to see exactly where decor is going to be
placed.
Green: floor points
Red: blocked decor points (eg, windows, doors)
White: Wall decor points
Blank: AllowDecor is set to false for that tile.
Gỡ lỗi: Đây có thể là một chuyển đổi rất hữu ích nếu bạn muốn biết chính xác vị trí trang trí sẽ diễn ra
đặt.
Màu xanh lá cây: điểm sàn
Màu đỏ: các điểm trang trí bị chặn (ví dụ: cửa sổ, cửa ra vào)
Màu trắng: Điểm trang trí tường
Trống: AllowDecor được đặt thành false cho ô đó.
Generate Room: When changing the values above, RoomGen will generate your room
automatically. If for some reason your room doesn’t generate automatically you can click this
button to regenerate it.
Tạo phòng: Khi thay đổi giá trị trên, RoomGen sẽ tạo phòng của bạn
tự động. Nếu vì lý do nào đó phòng của bạn không tự động tạo, bạn có thể nhấp vào đây
nút để tạo lại nó.
Save Room: This button will save your current room to a prefab in the assets folder. Useful to
quickly create a whole bunch of room prefabs!
Lưu phòng: Nút này sẽ lưu phòng hiện tại của bạn vào nhà lắp ghép trong thư mục nội dung. Hữu ích để
nhanh chóng tạo ra một loạt các phòng prefabs!
Door Pinning
Ghim cửa
Quickly and easily place doors where you want them.
Nhanh chóng và dễ dàng đặt cửa vào nơi bạn muốn.
One important part of creating rooms is being able to place doors where you need them.
RoomGen can either place doors randomly for you, or you can create a DoorPin to tell
RoomGen exactly where you want a door to be placed.
Một phần quan trọng của việc tạo phòng là có thể đặt cửa ở nơi bạn cần.
RoomGen có thể đặt cửa ngẫu nhiên cho bạn hoặc bạn có thể tạo DoorPin để thông báo
RoomGen chính xác là nơi bạn muốn đặt cửa.
To create a DoorPin, right click in your Hierarchy and navigate to RoomGen > DoorPin. This will
create a new GameObject in your scene with a DoorPin component. Drag your RoomGenerator
component into the slot, and that’s it! Simply drag this game object over the top of a wall in
your generated room and you will see a door appear.
Để tạo DoorPin, nhấp chuột phải vào Hệ thống phân cấp của bạn và điều hướng đến RoomGen > DoorPin. Điều này sẽ
tạo GameObject mới trong cảnh của bạn bằng thành phần DoorPin. Kéo RoomGenerator của bạn
thành phần vào khe cắm, thế là xong! Chỉ cần kéo đối tượng trò chơi này lên trên bức tường trong
phòng bạn đã tạo và bạn sẽ thấy một cánh cửa xuất hiện.




Page 9
DoorPins work alongside your existing generation. Meaning if you have specified to have 3
doors in your room and you have created 1 DoorPin, 2 of your doors will be placed randomly
and 1 will be placed at your door pin location.
DoorPins are not tied to a specific Level in your Room. You can move a DoorPin anywhere in
your room and to any level and it will align your door for you.
DoorPins hoạt động cùng với thế hệ hiện tại của bạn. Có nghĩa là nếu bạn đã chỉ định có 3
cửa trong phòng của bạn và bạn đã tạo 1 DoorPin, 2 cửa của bạn sẽ được đặt ngẫu nhiên
và 1 cái sẽ được đặt ở vị trí chốt cửa của bạn.
Ghim cửa không bị ràng buộc với một Cấp độ cụ thể trong Phòng của bạn. Bạn có thể di chuyển DoorPin đến bất kỳ đâu trong
phòng của bạn và ở bất kỳ cấp độ nào và nó sẽ căn chỉnh cửa cho bạn.
Runtime Generation and API’s
Tạo thời gian chạy và API
Modify generation at runtime with only a few lines of code.
Sửa đổi việc tạo trong thời gian chạy chỉ với một vài dòng mã.
Modifying RoomGen variables at runtime is fairly straightforward. The RoomGenerator
component should add an EventSystem component when it is first added to the scene. (If it
doesn’t have one, you can add one easily through the Add Component menu).
Việc sửa đổi các biến RoomGen trong thời gian chạy khá đơn giản. Máy phát điện phòng
nên thêm thành phần EventSystem khi nó được thêm vào cảnh lần đầu tiên. (Nếu nó
không có, bạn có thể thêm một cách dễ dàng thông qua menu Thêm thành phần).
The RoomGen EventSystem is responsible for delivering events to a specific RoomGen
component. The ID parameter in each method corresponds to a RoomGen component in your
scene.
RoomGen EventSystem chịu trách nhiệm phân phối các sự kiện đến một RoomGen cụ thể
thành phần. Tham số ID trong mỗi phương thức tương ứng với thành phần RoomGen trong
cảnh.
The available methods are:
Các phương pháp có sẵn là:
EventSystem.instance.SetGridSize(int id, int x, int z)
EventSystem.instance.SetGridSize(int id, int x, int z)
EventSystem.instance.SetPreset(int id, int x, int z)
EventSystem.instance.SetPreset(int id, int x, int z)
EventSystem.instance.SetRoomSeed(int id, int levelNumber, int seed);
EventSystem.instance.SetDecorSeed(int id, int levelNumber, int seed);
EventSystem.instance.SetCharacterSeed(int id, int levelNumber, int seed);
EventSystem.instance.SetRoomSeed(int id, int levelNumber, intseed);
EventSystem.instance.SetDecorSeed(int id, int levelNumber, intseed);
EventSystem.instance.SetCharacterSeed(int id, int levelNumber, intseed);
EventSystem.instance.SetDoorCount(int id, int levelNumber, int count);
EventSystem.instance.SetWindowCount(int id, int levelNumber, int count);
EventSystem.instance.SetDoorCount(int id, int levelNumber, int count);
EventSystem.instance.SetWindowCount(int id, int levelNumber, int count);
EventSystem.instance.SetLevelOffset(int id, int levelNumber, Vector3 offset);
EventSystem.instance.SetLevelHeight(int id, int levelNumber, int height);
EventSystem.instance.SetLevelOffset(int id, int levelNumber, Vector3 offset);
EventSystem.instance.SetLevelHeight(int id, int levelNumber, int Height);
EventSystem.instance.Generate(int id);
EventSystem.instance.Generate(int id);
Using the API’s
Sử dụng API
To use these in your scripts, first include the RoomGen namespace to your script by adding
using RoomGen to the inclusions.
Để sử dụng những thứ này trong tập lệnh của bạn, trước tiên hãy đưa vùng tên RoomGen vào tập lệnh của bạn bằng cách thêm
sử dụng RoomGen để đưa vào.
Every call to the RoomGen API requires you to specify the id of the generator you want these
changes to apply to, as there can be multiple RoomGen instances in a scene.
Mỗi lệnh gọi tới API RoomGen đều yêu cầu bạn chỉ định id của trình tạo mà bạn muốn
những thay đổi cần áp dụng vì có thể có nhiều phiên bản RoomGen trong một cảnh.
Page 10
In this example we will update the size of the room, and then update the character seed to get
some more randomization. It’s important to note that the levelNumber parameters in these
methods start at an index of zero. If you aren’t sure which levelNumber, expand the Levels
section of the RoomGen component and the level number will be listed there.
Trong ví dụ này, chúng tôi sẽ cập nhật kích thước của căn phòng, sau đó cập nhật hạt giống ký tự để có được
một số ngẫu nhiên hơn. Điều quan trọng cần lưu ý là các tham số cấp độ trong các
các phương thức bắt đầu ở chỉ số bằng 0. Nếu bạn không chắc chắn về Cấp độ nào, hãy mở rộng Cấp độ
của thành phần RoomGen và số cấp độ sẽ được liệt kê ở đó.
Add the methods to your script:
Thêm các phương thức vào tập lệnh của bạn:
EventSystem.instance.SetGridSize(0, 5, 5)
EventSystem.instance.SetCharacterSeed(0, 0, 1000);
EventSystem.instance.SetGridSize(0, 5, 5)
EventSystem.instance.SetCharacterSeed(0, 0, 1000);
Next, we add the generate method. This is very important to get your scene to regenerate.
Without this call you won’t see any changes at runtime.
Tiếp theo, chúng ta thêm phương thức generate. Điều này rất quan trọng để cảnh của bạn được tái tạo.
Nếu không có lệnh gọi này, bạn sẽ không thấy bất kỳ thay đổi nào trong thời gian chạy.
EventSystem.instance.Generate(0);
EventSystem.instance.Generate(0);
And that’s it! With just those few lines of code you can regenerate your entire RoomGen scene
during runtime. Use these methods to generate new levels programmatically, adjust character
and decor seeds, and more.
Và thế là xong! Chỉ với vài dòng mã đó, bạn có thể tạo lại toàn bộ cảnh RoomGen của mình
trong thời gian chạy. Sử dụng các phương pháp này để tạo cấp độ mới theo chương trình, điều chỉnh ký tự
và hạt giống trang trí, v.v.
Landscapes
phong cảnh
Generating landscapes is just as easy as creating rooms!
Tạo cảnh quan cũng dễ như tạo phòng!

Create a new preset for your desire landscape theme.
Tạo cài đặt trước mới cho chủ đề phong cảnh mong muốn của bạn.
Add your ground objects to the floor tiles section. This can be dirt tiles, grass tiles etc.
Thêm các vật thể trên mặt đất của bạn vào phần gạch lát sàn. Đây có thể là gạch đất, gạch cỏ, v.v.
Add your trees, grass, bushes and vegetation to the Floor Decorations section of RoomGen.
Thêm cây, cỏ, bụi rậm và thảm thực vật của bạn vào phần Trang trí sàn của RoomGen.
Specify probabilities for each type of vegetation and set the random rotation to 360 for more
natural landscapes.
Chỉ định xác suất cho từng loại thảm thực vật và đặt chế độ xoay ngẫu nhiên thành 360 để biết thêm
cảnh quan thiên nhiên.
Page 11
Play around with the GridX, GridZ values and the decor seeds! You can generate a whole
bunch of landscape prefabs very quickly this way.
Thử nghiệm với các giá trị GridX, GridZ và các hạt giống trang trí! Bạn có thể tạo ra một tổng thể
một loạt các nhà lắp ghép cảnh quan rất nhanh chóng theo cách này.
Target Generators
Trình tạo mục tiêu
These are great for quickly placing props along a surface. Target generators distribute props within a
circular radius.
Đây là những cách tuyệt vời để nhanh chóng đặt các đạo cụ dọc theo một bề mặt. Trình tạo mục tiêu phân phối đạo cụ trong một
bán kính hình tròn.

Target generators work with RoomGen presets,
similar to how the RoomGenerator component
works.
Trình tạo mục tiêu hoạt động với các cài đặt trước RoomGen,
tương tự như cách thành phần RoomGenerator
hoạt động.
Add the Target Generator component to an empty
GameObject in your scene.
Thêm thành phần Trình tạo mục tiêu vào chỗ trống
GameObject trong cảnh của bạn.
Target Generators only use the Floor Decorations
within a preset.
Máy phát điện mục tiêu chỉ sử dụng Trang trí sàn
trong một cài đặt trước.
Drag a preset into the slot.
If you want to make changes to a preset and see
them reflected in the Target Generator, drag the
same Preset into the preset editor component.
Kéo cài đặt trước vào khe.
Nếu bạn muốn thay đổi cài đặt trước và xem
chúng được phản ánh trong Trình tạo mục tiêu, hãy kéo
cùng một Preset vào thành phần soạn thảo cài sẵn.

Adjust the radius to the desired size.
Điều chỉnh bán kính theo kích thước mong muốn.
Adjust the object density to the desired
amount. This determines how many objects
will be placed, and how dense they will be
packed.
Điều chỉnh mật độ đối tượng theo mong muốn
số tiền. Điều này xác định có bao nhiêu đối tượng
sẽ được đặt và mật độ của chúng sẽ như thế nào
đóng gói.
If you would like the objects aligned to a
surface like a terrain, uneven ground
GameObjects, etc. Check the Align to Surface
box.
Make sure to specify which layer your surface
is on.
Nếu bạn muốn các đối tượng được căn chỉnh theo một
bề mặt như địa hình, mặt đất không bằng phẳng
GameObjects, v.v. Kiểm tra Align to Surface
hộp.
Đảm bảo chỉ định lớp bề mặt của bạn
đang bật.
Check the Debug box if you want to visualize
the object placement points.
Chọn hộp Gỡ lỗi nếu bạn muốn hình dung
các điểm đặt đối tượng.
You should see your objects being placed
within your scene as you make changes in the
inspector. If for some reason a change doesn’t
happen live, you can click “Generate”.
Bạn sẽ thấy đồ vật của mình được đặt
trong cảnh của bạn khi bạn thực hiện các thay đổi trong
thanh tra. Nếu vì lý do nào đó một sự thay đổi không
xảy ra trực tiếp, bạn có thể nhấp vào “Tạo”.
Page 12

Troubleshooting
Khắc phục sự cố
If your wall/door tiles aren’t lining up, rotated strangely or your wall decorations don’t match the
walls even after adjusting the position offsets try the following steps to get things lined up.
Nếu gạch ốp tường/cửa của bạn không thẳng hàng, bị xoay bất thường hoặc đồ trang trí trên tường của bạn không khớp với
các bức tường ngay cả sau khi điều chỉnh độ lệch vị trí, hãy thử các bước sau để sắp xếp mọi thứ.
Nothing is happening in the scene:
Check to make sure you have added at least one Level, and that Level has a preset.
Không có gì xảy ra trong hiện trường:
Kiểm tra để đảm bảo rằng bạn đã thêm ít nhất một Cấp độ và Cấp độ đó đã được cài đặt sẵn.
Walls or floors are rotated strangely:
Go to the object in the dropdown list. Try adjust the rotation until your tiles line up.
Tường hoặc sàn bị xoay một cách kỳ lạ:
Đi tới đối tượng trong danh sách thả xuống. Hãy thử điều chỉnh góc xoay cho đến khi các ô của bạn thẳng hàng.
Walls or floors have gaps:
Go to the object in the dropdown list. Try adjust the position offset until your tiles line up.
Tường hoặc sàn có khoảng trống:
Đi tới đối tượng trong danh sách thả xuống. Hãy thử điều chỉnh độ lệch vị trí cho đến khi các ô của bạn thẳng hàng.
Decorations aren’t appearing:
Make sure that in the item settings you have set correct probabilities, scale ranges and that
your vertical range is large enough. To test, set this range to something large like x: 0 and Y:100
Đồ trang trí không xuất hiện:
Đảm bảo rằng trong cài đặt mục, bạn đã đặt đúng xác suất, phạm vi tỷ lệ và
phạm vi dọc của bạn đủ lớn. Để kiểm tra, hãy đặt phạm vi này thành giá trị lớn như x: 0 và Y:100
If both your walls and floors have gaps between them, try adjusting the tile size variable. This
value should match your prefab size.
Nếu cả tường và sàn nhà của bạn đều có khoảng trống giữa chúng, hãy thử điều chỉnh biến kích thước gạch. Cái này
giá trị phải phù hợp với kích thước prefab của bạn.
Have fun and happy creating!
Chúc bạn vui vẻ và hạnh phúc khi sáng tạo!
Page 13
