如果游戏中有个飞行子弹轨迹出了问题
那咋解决呢?
通常来说,直观看到曲线后,就能定位问题
那如何看到曲线呢?
将每个x对应的y都绘制到场景中,就能看到函数曲线
如果加个阈值,x以0.1的增量变大,来得到y的离散点,将这些点连接起来就是曲线了
Unity提供的画线接口:
Debug.DrawLine
效果如下:
代码如下:
[ExecuteInEditMode]
public class DrawCustLine : MonoBehaviour
{
public Transform target;
public float height = 1;
public float length = 2;
public float offset = 0;
public float totalLength = 8;
[Range(0f, 1f)]
public float delat = 0.1f;
void Update()
{
MakeSin(target);
}
void MakeSin(Transform trTrans)
{
if (trTrans == null)
return;
Debug.DrawLine(trTrans.position, trTrans.TransformPoint(Vector3.forward * totalLength));
Vector3 perPos = trTrans.position;
for (float i = 0; i < totalLength; i = i + delat)
{
float h = Mathf.Sin(i * length + offset) * height;
Vector3 localPos = new Vector3(0, h, i);
Vector3 worldPos = trTrans.TransformPoint(localPos);
Debug.DrawLine(perPos, worldPos, Color.green);
perPos = worldPos;
}
}
}