Class BlockHolder
持有Block的组件,在场景中持有并管理Block。
一般需要在编辑器中或运行时的脚本中设置BlockRoot,它通常由Mega Studio在编辑模式下生成。如果运行时定位到了一个未知的block,BlockHolder会自动生成一个BlockController并添加到BlockRoot下面,这时如果BlockRoot不存在它会自动创建。
[DisallowMultipleComponent]
public class BlockHolder : MonoBehaviour
- 继承
-
BlockHolder
字段
BlockRootSource
Block root的来源。
public BlockHolder.BlockRootSourceType BlockRootSource
MultiBlock
定位到多个Block时的策略。需要在MonoBehaviour.Start前设置。
public BlockHolder.MultiBlockStrategy MultiBlock
blocks
protected readonly Dictionary<string, BlockController> blocks
属性
BlockRoot
所有Mega block的父节点。它通常由Mega工具生成。如未设置,一个新的root节点会在第一个block被持有的时候自动生成。
public BlockRootController BlockRoot { get; set; }
Blocks
所有被持有的Mega block。
public List<BlockController> Blocks { get; }
方法
GetBlock(string)
获取block。
public BlockController GetBlock(string id)
参数
id
Hold(BlockInfo, LocalTransform)
持有一个block。Block local transform 由输入参数设置。
public BlockController Hold(BlockController.BlockInfo info, LocalTransform transform)
参数
infotransform
Hold(BlockInfo, Location)
持有一个block。Block local transform 由location计算得到。
public BlockController Hold(BlockController.BlockInfo info, Location location)
参数
infolocation