编辑: 我有一个0-90之间的滑块供用户选择角度,还有一个文本框供他们输入速度。我见过的所有vid都有人在使用自己的物理学,或者直接从“枪”或鼠标位置的角度检索角度,但这不是我所需要的。我已经知道它现在受到重力影响的位置,但是即使将速度设置为50,它也会在它产生后下降。我希望速度确定在产生球时的dx和dy值,但是它似乎没有发生。
我相信我可以通过GameObject.Find(“ AngleSlider”)。GetComponent()。angleSlider.value获取滑块值 并且如果我可以将其转换为float(?),则应该能够与文本框值进行类似的操作,所以我认为我很好,除非有人注意到此问题。
此初学者将提供任何帮助。谢谢!
编辑:根据要求,我添加了此部分具有atm的代码。这是我附着在加农炮上的击球器。提到的CannonBall是附加在炮弹预制件上的另一个脚本。我在CannonBall脚本中公开了未初始化的dx,dy和speed float。
public GameObject cannonBallPrefab;
public Transform shotPoint;
void Start () {
}
void Update () {
if(Input.GetKeyDown("space"))
{
GameObject ball = Instantiate(cannonBallPrefab, shotPoint.position, Quaternion.identity);
CannonBall ballMovement = ball.GetComponent<CannonBall>();
ballMovement.dy = Mathf.Sin(GameObject.Find("AngleSlider").GetComponent<SliderHandler>().angleSlider.value * Mathf.Deg2Rad) * ballMovement.speed;
ballMovement.dx = Mathf.Cos(GameObject.Find("AngleSlider").GetComponent<SliderHandler>().angleSlider.value * Mathf.Deg2Rad) * ballMovement.speed;
Debug.Log("ball is spawned");
}
}