此代码中的错误在哪里:
using UnityEngine;
using System.Collections;
public class BulletScript : MonoBehaviour {
private float angle;
private bool initialized=false;
private float speed=.01f;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void FixedUpdate () {
if(initialized)
{
Vector3 v = new Vector3((speed*Mathf.Cos(angle)),(speed*Mathf.Sin(angle)),0);
transform.position+=v;
}
}
public void initialize(Vector2 startPos, Vector2 targetPos)
{
transform.position=new Vector3(startPos.x,startPos.y,transform.position.z);
angle = (Mathf.Atan2(targetPos.y-startPos.y,targetPos.x-startPos.x))*Mathf.Rad2Deg;
print(angle);
initialized=true;
}
}
正确计算角度。然而,子弹以随机方向行进。 如果角度= 45度,子弹以大约45度的角度移开 如果角度= 90度,子弹以大约110度的角度移开 如果角度= 180度,子弹以大约225度的角度移开 如果角度= 360度,子弹以大约130度角移开 几乎就像角度越大,不正确的偏移就越大。