当我将disableFollowCam从新设置为false时,这时候相机会突然回到之前disableFollowCam设置为true时的位置,即使我在相机移动时已经将人物的位置设置到新的位置。
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- react, typescript
- Ambito
- game-dev
Direzione di ricerca
Inizia dal componente Ecctrl e traccia il modo in cui disableFollowCam influisce sulla posizione della videocamera e sulla traslazione del giocatore durante cameraMoveTo. Riproduci la sequenza mostrata con il tween della videocamera, la chiamata a setTranslation e il ripristino di disable a false. Il lavoro è completato quando la videocamera rimane nella nuova posizione invece di tornare a quella precedente.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
这是我的代码:它实现在第一人称视角的镜头动画,将镜头移动到某个位置。我期望,之后不会再回到动画前的位置。它就呆在哪儿,可是
`
const rigidRef = useRef(null); // 玩家所在刚体
const [disable, setDisable] = useState(false);
// 相机移动
function cameraMoveTo(to: Vector3) {
if (!camera) return;
setDisable(true);
new TWEEN.Tween(camera.position, tweenGroup)
.to(
{
x: to.x,
y: to.y,
z: to.z,
},
1800
)
.easing(TWEEN.Easing.Quartic.InOut)
.start()
.onComplete(() => {
setDisable(false);
rigidRef.current!.setTranslation(to, false);
});
}
cameraMoveTo(new Vector3(0.5, 1, 6));
<Ecctrl
// 人物设置
position={startPos}
camInitDir={START_DIR}
maxVelLimit={SPEED} // 人物移动速度
turnVelMultiplier={1}
turnSpeed={100}
name="player"
// 相机设置
camListenerTarget="document"
camCollision={false}
camInitDis={-0.01}
camMinDis={-0.01}
camMaxDis={-0.01}
camLerpMult={1000}
camFollowMult={1000}
camUpLimit={Math.PI / 10}
camLowLimit={-Math.PI / 10}
// 移动设置
mode="CameraBasedMovement"
disableFollowCam={disable}
autoBalance={false}
floatHeight={0}
ref={rigidRef}
/>`
- Lingua principale
- TypeScript
- Stelle
- 807
- Fork
- 100
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di pmndrs/ecctrl
-
errorAperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 15/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 48/100
-
React 19Forse già presa @envoy1084 l’ha presa 564 giorni fa. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
-
Typescript Errors from /node_modules/ecctrl/src/EcctrlJoystick.tsxForse già presa @trebeljahr l’ha presa 613 giorni fa. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 38/100
Tutte le issue di pmndrs/ecctrl
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
chrisparsons83/flexspotff#215 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
vitest-dev/vitest#11633 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
I maintainer di solito rispondono entro 1 giorno