Metaio Change Geometry Texture
Я попытался загрузить 3D-модель с ее текстурой в metaio SDK. Но теперь у меня есть новый вызов:
Предположим, у меня есть 3D-модель автомобиля, я хочу загрузить ее в Metaio SDK и изменить цвет машины, когда пользователь нажимает на экран. Как это сделать? Вообще, какова связь между 3d моделью и ее текстурой? Можем ли мы иметь одну 3d-модель и несколько текстур для нее и связать их во время выполнения? Как?
Благодарю.
1 ответ
Да, вы можете иметь несколько текстур с помощью setTexture
из IGeometry
объект.
В зависимости от типа используемой модели текстура может быть сохранена в самой модели или в файле с тем же именем. Когда я попробовал несколько текстур, хранящихся в файле MDL, это не сработало, и мне пришлось хранить их отдельно.
ваш код будет примерно таким:
@Override
protected void onGeometryTouched(IGeometry geometry) {
MetaioDebug.log("Template.onGeometryTouched: " + geometry);
geometry.setTexture(AssetsManager.getAssetPathAsFile(getApplicationContext(), "mytexture.png"));
}
для обработки касания, если у вас его еще нет, вы должны зарегистрировать обработчик жестов:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//other init code here...
mGestureMask = GestureHandler.GESTURE_ALL;
mGestureHandler = new GestureHandlerAndroid(metaioSDK, mGestureMask);
}