У меня есть игра типа блокировщика, написанная с использованием C #, которая в основном работает нормально, но после игрового тестирования я обнаружил, что мяч будет замедляться в определенных ситуациях! то есть, если он вклинивается между кирпичами игрового объекта, сила мяча быстро замедляется! В 8 случаях из десяти этого не произойдет, но в других случаях это произойдет, и я не знаю, почему! я опубликую сценарий мяча, я думаю, вам нужно будет помочь решить эту проблему, но если вам нужна дополнительная информация, пожалуйста, спросите.
public class Ball : MonoBehaviour {
private Paddle paddle;
private bool hasStarted = false;
private Vector3 paddleToBallVector;
void Start () {
paddle = GameObject.FindObjectOfType<Paddle> ();
paddleToBallVector = this.transform.position - paddle.transform.position;
}
// Update is called once per frame
void Update () {
if (!hasStarted) {
//lock ball relative to the paddle
this.transform.position = paddle.transform.position + paddleToBallVector;
//wait for mouse press to start
if (Input.GetMouseButtonDown (0)) {
//if (Input.GetTouch(0).phase == TouchPhase.Ended){
hasStarted = true;
this.GetComponent<Rigidbody2D> ().velocity = new Vector2 (2f, 10f);
}
}
}
void OnCollisionEnter2D(Collision2D collision){
Vector2 tweak = new Vector2 (Random.Range(0f,0.2f),Random.Range(0f,0.2f));
if (hasStarted) {
GetComponent<AudioSource> ().Play ();
GetComponent<Rigidbody2D>().velocity += tweak;
}
}
}