คำถามติดแท็ก lerp

3
ฉันจะอ่านระหว่างค่าที่วนซ้ำ (เช่นสีหรือการหมุน) ได้อย่างไร
ดูการสาธิต ฉันพยายามที่จะทำให้รอยต่อหมุนได้อย่างราบรื่นรอบจุดศูนย์กลางของผืนผ้าใบไปยังมุมของตัวชี้เมาส์ สิ่งที่ฉันได้ผล แต่ฉันต้องการให้มันเคลื่อนไหวได้ในระยะทางที่สั้นที่สุดเท่าที่จะเป็นไปได้เพื่อให้ได้มุมของเมาส์ ปัญหาเกิดขึ้นเมื่อค่าวนรอบที่เส้นแนวนอน ( 3.14และ-3.14) วางเมาส์เหนือบริเวณนั้นเพื่อดูว่าทิศทางเปลี่ยนไปอย่างไรและมันจะย้อนกลับไปได้ไกล รหัสที่เกี่ยวข้อง // ease the current angle to the target angle joint.angle += ( joint.targetAngle - joint.angle ) * 0.1; // get angle from joint to mouse var dx = e.clientX - joint.x, dy = e.clientY - joint.y; joint.targetAngle = Math.atan2( dy, dx …

6
วิธีการ Color.Lerp ระหว่างหลายสี?
ฉันพบว่ามันค่อนข้างยากที่จะหาทางแก้ไขในเอกสาร Unity Color.Lerp(Color a, Color b, float t) เป็นฟังก์ชั่นที่ค่อยๆเปลี่ยนสีตามขั้นตอน t โดยให้ค่าสุดท้ายของ Color b ฉันจะ Lerp ระหว่างสีหลายสีทีละคน?
12 c#  unity  color  lerp 

3
ทำไมต้องใช้ Time.deltaTime ในฟังก์ชั่น Lerping
เพื่อความเข้าใจของฉัน, ฟังก์ชั่น Lerp สอดแทรกระหว่างสองค่า ( aและb) โดยใช้ค่าที่สาม ( t) ระหว่างและ0 1ที่t = 0ค่า a ถูกส่งคืน at ที่t = 1ค่าbจะถูกส่งคืน ที่ 0.5 ค่าครึ่งทางระหว่างaและbจะถูกส่งกลับ (ภาพต่อไปนี้เป็นแบบสเต็ปสเตปซึ่งมักจะเป็นการแก้ไขแบบลูกบาศก์) ฉันได้ดูฟอรัมและคำตอบนี้ฉันพบบรรทัดของรหัสต่อไปนี้:transform.rotation = Quaternion.Slerp(transform.rotation, _lookRotation, Time.deltaTime); ฉันคิดกับตัวเองว่า "เป็นคนโง่เขาไม่มีความคิดอะไรเลย" แต่เนื่องจากมีผู้โหวตมากกว่า 40+ ครั้งฉันจึงได้ลองและแน่นอนว่ามันใช้ได้ดี! float t = Time.deltaTime; transform.rotation = Quaternion.Slerp(transform.rotation, toRotation, t); Debug.Log(t); ผมได้รับค่าสุ่มระหว่าง0.01และสำหรับ0.02 tฟังก์ชั่นไม่ควรแก้ไขตามหรือไม่ ทำไมค่าเหล่านี้สแต็ก มันเกี่ยวกับ lerp อะไรที่ฉันไม่เข้าใจ?

2
การแก้ไขจะทำงานอย่างไรเพื่อทำให้การเคลื่อนที่ของวัตถุราบรื่นขึ้น?
ฉันถามคำถามที่คล้ายกันสองสามครั้งในช่วง 8 เดือนที่ผ่านมาโดยไม่มีความสุขจริง ๆ ดังนั้นฉันจะทำให้คำถามทั่วไปยิ่งขึ้น ฉันมีเกม Android ซึ่งเป็น OpenGL ES 2.0 ภายในนั้นฉันมี Game Loop ดังต่อไปนี้: ลูปของฉันทำงานบนหลักการขั้นตอนเวลาที่แน่นอน (dt = 1 / ticksPerSecond ) loops=0; while(System.currentTimeMillis() > nextGameTick && loops < maxFrameskip){ updateLogic(dt); nextGameTick+=skipTicks; timeCorrection += (1000d/ticksPerSecond) % 1; nextGameTick+=timeCorrection; timeCorrection %=1; loops++; } render(); การรวมของฉันทำงานเช่นนี้: sprite.posX+=sprite.xVel*dt; sprite.posXDrawAt=sprite.posX*width; ตอนนี้ทุกอย่างทำงานได้สวยตามที่ฉันต้องการ ฉันสามารถระบุได้ว่าฉันต้องการให้วัตถุเคลื่อนที่ในระยะหนึ่ง (ความกว้างของหน้าจอพูด) ภายใน …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.