sealed public override bool AttachBlock()
 {
     if (base.AttachableEditorElement != null)
     {
         InputDefinitionOfBlockEditorUnit inputDefinitionOfBlockEditorUnit = base.AttachableEditorElement as InputDefinitionOfBlockEditorUnit;
         inputDefinitionOfBlockEditorUnit.InputtedValueBlockEditorUnit = this;
         return(true);
     }
     else
     {
         return(false);
     }
 }
    sealed public override bool IsAttatchable()
    {
        InputDefinitionOfBlockEditorUnit topInputDefinitionOfBlockEditorUnit = UiUtility.GetTopBlockEditorElementWithWorldPoint <InputDefinitionOfBlockEditorUnit>(transform.position, InputDefinitionOfBlockEditorUnit.InputDefinitionOfBlockEditorUnitTag, x => x.GetType() == this.TargetEditorBlockType);

        //Debug.Log("topInputSpaceElementOfBlockUnit " + topInputSpaceElementOfBlockUnit?.OwnerBlockEditorUnit?.name);
        if (topInputDefinitionOfBlockEditorUnit == null || topInputDefinitionOfBlockEditorUnit.OwnerBlockEditorUnit == this || topInputDefinitionOfBlockEditorUnit.OwnerBlockEditorUnit._BlockEditorUnitFlag.HasFlag(BlockEditorUnitFlag.IsAttachable) == false || topInputDefinitionOfBlockEditorUnit.IsEmpty == false)
        {
            base.AttachableEditorElement = null;
            return(false);
        }
        else
        {
            base.AttachableEditorElement = topInputDefinitionOfBlockEditorUnit;
            return(true);
        }
    }