这是一个作业问题(请勿抄袭,抄袭并不聪明):我们需要使用Verlet方法在Unity 2D中绘制一个2D火鸡,并更新顶点的位置。然而,我们不知道要跟踪火鸡所需的力量。这是一张火鸡的图片。有什么诀窍吗?
以下是我们开始的代码:
![enter image description here](https://istack.dev59.com/7omGJ.webp)
public class GenerateTurkeys : MonoBehaviour
{
LineRenderer lineRenderer = gameObject.AddComponent<LineRenderer>();
// Start is called before the first frame update
int numberOfTurkeys;
int NUM_PARTICLES;
float fTimeStep;
Vector3[] m_position = new Vector3[NUM_PARTICLES];
Vector3[] m_acceleration = new Vector3[NUM_PARTICLES];
Vector3[] m_oldPosition = new Vector3[NUM_PARTICLES];
void Start()
{
NUM_PARTICLES = 100;
numberOfTurkeys = 0;
}
// Verlet integration step void ParticleSystem::
Verlet()
{
for (int i=0; i<NUM_PARTICLES; i++)
{
Vector3 x = m_position[i];
Vector3 temp = x;
Vector3 oldx = m_oldPosition[i];
Vector3 a = m_acceleration[i];
x += x-oldx+a* fTimeStep*fTimeStep;
oldx = temp;
}
}
void DrawLine(float[] heights)
{
LineRenderer lineRenderer = GetComponent<LineRenderer>();
var t = Time.time;
for (int i = 0; i < NUM_PARTICLES; i++)
{
lineRenderer.SetPosition(i, );
}
}
// Update is called once per frame
void Update()
{
}
}
Rigidbody2D
来设置velocity
。Verlet 方法要求我们先找到加速度,然后再找到速度,结果就是我们的速度值。如果不使用Rigidbody2D
,则必须使用指定的速度移动对象,例如,通过transform.position
将不得不构建额外的算法。 - Dmitri Veselov