Префабы надо заливать вместе с их метой и вместе с скриптами и метой.
Так и делаем, но там подобная сцене ситуация есть идентификаторы и положение объектов в пространстве глядя на diff которых в нельзя понять какой вариант актуальный…
Видимо у нас разный процесс.
Я создал сцену, добавил в нее объекты с префабов. А на следующий день мне нужно добавить в сцену ещё несколько объектов из новых префабов. Параллельно, другой разработчик удаляет уже не нужный объект из сцены. В итоге сцена меняется у обоих если оба сделают commit(или push для git) один из них получит конфликт в файле сцены. А сцена хоть и текстовая, все равно хранит не читаемые идентификаторы объектов и не понятно какой объект был добавлен какой удалён…
Метафайлы и текстовые сцены включили, но как мерджить конфликты так и не поняли. Пока просто разделили работу со сценами и префабами на уровне комуникации — «Я взял мейн сцену!». Но с этим как то тяжеловато)
Думаю TiGR имел в виду ситуацию не только с несколькими источниками данных но и с несколькими классами их получения. Например в вашем варианте для 3-х классов нужно сделать 3 декоратора: interface AlbumDbMapperInterface
{
public function getAlbums()
public function getAlbum($id)
}
interface ArtistDbMapperInterface
{
public function getArtists()
public function getArtist($id)
}
interface TagMongoDbMapperInterface
{
public function getTags()
}
class AlbumDbMapper implements AlbumDbMapperInterface
{
public function getAlbums(){}
public function getAlbum($id){}
}
class ArtistDbMapper implements ArtistDbMapperInterface
{
public function getArtists(){}
public function getArtist($id){}
}
class TagMongoDbMapper implements TagMongoDbMapperInterface
{
public function getTags(){}
}
abstract class CachingDecorator{}
class AlbumDbMapperCachingDecorator extends CachingDecorator implements AlbumDbMapperInterface
{
public function getAlbums(){}
public function getAlbum($id){}
}
class ArtistDbMapperCachingDecorator extends CachingDecorator implements ArtistDbMapperInterface
{
public function getArtists(){}
public function getArtist($id){}
}
class TagMongoDbMapperCachingDecorator extends CachingDecorator implements TagMongoDbMapperInterface
{
public function getTags(){}
}
Так и делаем, но там подобная сцене ситуация есть идентификаторы и положение объектов в пространстве глядя на diff которых в нельзя понять какой вариант актуальный…
Я создал сцену, добавил в нее объекты с префабов. А на следующий день мне нужно добавить в сцену ещё несколько объектов из новых префабов. Параллельно, другой разработчик удаляет уже не нужный объект из сцены. В итоге сцена меняется у обоих если оба сделают commit(или push для git) один из них получит конфликт в файле сцены. А сцена хоть и текстовая, все равно хранит не читаемые идентификаторы объектов и не понятно какой объект был добавлен какой удалён…
interface AlbumDbMapperInterface
{
public function getAlbums()
public function getAlbum($id)
}
interface ArtistDbMapperInterface
{
public function getArtists()
public function getArtist($id)
}
interface TagMongoDbMapperInterface
{
public function getTags()
}
class AlbumDbMapper implements AlbumDbMapperInterface
{
public function getAlbums(){}
public function getAlbum($id){}
}
class ArtistDbMapper implements ArtistDbMapperInterface
{
public function getArtists(){}
public function getArtist($id){}
}
class TagMongoDbMapper implements TagMongoDbMapperInterface
{
public function getTags(){}
}
abstract class CachingDecorator{}
class AlbumDbMapperCachingDecorator extends CachingDecorator implements AlbumDbMapperInterface
{
public function getAlbums(){}
public function getAlbum($id){}
}
class ArtistDbMapperCachingDecorator extends CachingDecorator implements ArtistDbMapperInterface
{
public function getArtists(){}
public function getArtist($id){}
}
class TagMongoDbMapperCachingDecorator extends CachingDecorator implements TagMongoDbMapperInterface
{
public function getTags(){}
}