public static RayCastTarget Assemble(GameObject model, SceneObjectEntity entity)
        {
            var needRotate = false;

            if (entity.hasSimpleEquipment)
            {
                var isWeaponPart = entity.simpleEquipment.Category == (int)ECategory.WeaponPart;
                var isWeapon     = entity.simpleEquipment.Category == (int)ECategory.Weapon;
                var isC4         = SingletonManager.Get <WeaponResourceConfigManager>().IsC4(entity.simpleEquipment.Id);
                needRotate = isWeaponPart || (isWeapon && !isC4);
            }
            else if (entity.hasWeaponObject)
            {
                var isC4 = SingletonManager.Get <WeaponResourceConfigManager>().IsC4(entity.weaponObject.ConfigId);
                needRotate = !isC4;
            }
            else
            {
                Logger.Error("illegal sceneobject has no weapon or equip component ");
            }
            if (needRotate)
            {
                model.transform.localRotation = Quaternion.Euler(0, 0, -90);
            }
            else
            {
                model.transform.localRotation = Quaternion.identity;
            }
            var root = BaseGoAssemble.Assemble(model, entity.position.Value, entity.entityKey.Value.ToString(), needRotate);

            model.transform.localScale = Vector3.one;
            return(root);
        }
        public static RayCastTarget Assemble(GameObject model, FreeMoveEntity entity)
        {
            var root = BaseGoAssemble.Assemble(model, GetLegalPosition(entity.position.Value), entity.entityKey.Value.ToString());

            return(root);
        }