打磚塊(2)小球控制指令碼
阿新 • • 發佈:2018-11-25
using System.Collections;
using System.Collections.Generic;
using UnityEngine.SceneManagement;//頭部引用
using UnityEngine;
public float BallSpeed = 10;//小球的速度 int num = 0; void Update() { if(Input.anykey && num == 0) //控制想小球是不是第一次離開橫板 //&&稱為邏輯與運算子。如果兩個運算元都非零,則條件為真.(A && B) 為假。 { GetComponent<Rigidbody2D>().velocity = vector2.up * BallSpeed; //得到Rigidbody2D裡的velocity num++ } if(transform.position.y < -8) { SceneManage.LoadScene("Game");//小球掉落後重新載入 } } float HitFactor(Vector2 ballPos, Vector2 racketPos, float racketWidth) //球與板碰撞的反彈方向,橫板的x座標為中心 { return(ballPos.x - racketPos.x / racketWidth); //通過這個公式可以判斷小球是跟橫板左邊右邊接觸 } private void OnCollisionEnter2D(Collision2D col) { if(col.gameObject.name == "racket" && num == 1 ) //控制小球是不是第一次離開橫板 { float x = HitFactor(transform.position,col.transform.position,col.collider.bounds.size.x); Vector2 dir = new Vector2(x,1).normalized;//normalized,向量歸一化 GetComponent<Rigidbody2D>().velocity =dir * BallSpeed; } } }