Переключение текстур может быть выполнено несколькими способами:
примитивы с фреймами, такие как
или
, представляют собой простой случай. Просто измените атрибут material.src
el.setAttribute('material', 'src', newTexture)
Модели могут быть довольно сложными, так как вам нужно переключить свойство mesh.map.texture
(возможно, для всех дочерних элементов, а не только для одной сетки). ).
var mesh = this.el.getObject3D('mesh')
var loader = new THREE.TextureLoader();
loader.load( url, (texture) => {
// onLoad callback
mesh.material.map = texture
mesh.material.needsUpdate = true
this.switch = !this.switch
}
)
Выбор может быть сделан миллионами способов.
Сначала я хотел сохранить информацию о текстуре и получить к ней доступ при нажатии
, но простым способом было бы получить пару изображений
и компонент в каждом примитиве фрейма, который будет:
обнаруживать щелчки на этих изображениях -> хранить информацию -> использовать ее при нажатии:
обнаруживать щелчки на изображениях:
var els = document.getElementsByClassName("images");
Array.from(els).forEach((el) => {
el.addEventListener('click', (e)=>{
this.selectedTexture = e.target.src
})
});
применение текстуры при нажатии:
this.el.addEventListener('click', (e) => {
if (!this.selectedTexture) {
return
}
this.el.setAttribute("material", "src", this.selectedTexture)
})
Эта скрипка содержит все вышеперечисленное. Два блока сами переключают текстуры, а остальные будут применять выбранное изображение в качестве текстуры.
zsh
имеет мощный механизм коррекции. Если вы вводите команду неправильно, это предлагает исправления.
What happend here is that dir
is an unknown command and zsh
suggests gdir
, while maybe ls
was what you wanted.
gdir
hit y
(yes)dir
anyway hit n
(no)ls
hit a
(abort) and type your commandudir
hit e
(edit) and edit your command.From An Introduction to the Z Shell:
If you press y when the shell asks you if you want to correct a word, it will be corrected. If you press n, it will be left alone. Pressing a aborts the command, and pressing e brings the line up for editing again, in case you agree the word is spelled wrong but you don’t like the correction.