2D Bullet Class Unity

时间:2014-12-14 20:39:24

标签: c# math unity3d trigonometry

此代码中的错误在哪里:

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度角移开 几乎就像角度越大,不正确的偏移就越大。

0 个答案:

没有答案