Table of Contents

Class BlockHolder

命名空间
EasyAR.Mega.Scene
程序集
EasyAR.Mega.Scene.dll

持有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)

参数

info
transform

Hold(BlockInfo, Location)

持有一个block。Block local transform 由location计算得到。

public BlockController Hold(BlockController.BlockInfo info, Location location)

参数

info
location