我正在使用 Unity 制作我的第一个 C# 游戏/程序。基本上,流星体应该向宇宙飞船移动,但它们失去速度并开始向下坠落。在我将子弹添加到游戏中之前,下面的代码是有效的,但现在出了问题。
游戏的其余部分都可以运行。我可以射击流星体,然后它们就会被摧毁。宇宙飞船在碰撞后重新定位。
我不认为代码是问题,而是Unity中的一些设置。有什么想法吗?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Meteoroid : MonoBehaviour
{
[SerializeField]
private GameObject spaceship;
[SerializeField]
private float speed = 100.0f;
[SerializeField]
private Rigidbody2D rb;
// Start is called before the first frame update
void Start()
{
rb = this.GetComponent<Rigidbody2D>();
}
// Update is called once per frame
void Update()
{
// Move towards the spaceship's position
transform.position = Vector2.MoveTowards(transform.position, spaceship.transform.position, speed * Time.deltaTime);
// Adjust the rotation to face the spaceship
transform.up = spaceship.transform.position - transform.position;
}
}
我在 Rigidbody2D 上将流星体的重力比例设置为零。已经解决了。