Étape 5: Partie de l’unité 2 permet de lire et de déplacer le sac
vous pouvez suivre le tutoriel vidéo pour explication étape par étape ou simplement fixer le script suivant à votre bouteille et amusez-vous:)
using UnityEngine;using System.Collections; using System.IO.Ports;
public class Punch : MonoBehaviour {
public int x , y ; public int power; public float angle; public AudioSource player;
private Vector3 punchDir; private Rigidbody punchingBag; private SerialPort stream = new SerialPort( + "COM11", 9600);
// Use this for initialization void Start () {
flux de données. Open() ; flux de données. ReadTimeout = 25 ; StartCoroutine(readData()) ; punchingBag = GetComponent() ; stream.Open(); stream.ReadTimeout=25; StartCoroutine(readData()); punchingBag = GetComponent(); } // Update is called once per frame void Update () { punchDir = new Vector3(x, 0, y); angle = Vector2.Angle(Vector2.up, punchDir); if (angle < 0) { Debug.Log("negative Value"); } } Mise à jour est appelée une fois par trame Sub Update () {punchDir = new Vector3 (x, 0, y); angle = Vector2.Angle (Vector2.up, punchDir); if (angle < 0) {Debug.Log ("valeur négative") ; public void punchIt(int _x ,int _y) { punchDir = new Vector3(_x, 0f, _y); punchingBag.AddForce(power * punchDir); player.Play(); }
' public void punchIt (int _x, int FLF) {punchDir = new Vector3 (_x, 0f, FLF); punchingBag.AddForce(power * punchDir) ; joueur. Play() ; IEnumerator readData() {
while (true) { if (stream.IsOpen) {
try {
string value = stream.ReadLine(); string[] values = value.Split(','); int x1 = int.Parse(values[0]); int y1 = int.Parse(values[1]); Debug.Log(x1); if (x1 >= 62 && x1 <= 185) { x1 = 0;
} else if (x1 > 185) { x1 = -1; } else if (x1 < 62) { x1 = 1; }
if (y1 >= 62 && y1 <= 185) { y1 = 0; ElseIf (x1 > 185) {x1 = - 1 ; } else if (y1 > 185) { y1 = -1; } else if (y1 < 62) { y1 = 1; } Debug.Log(x1); //Debug.Log(y1); punchIt(x1, y1); } catch (System.Exception) { // Debug.Log("TimeOut Exception"); } ElseIf (x1 < 62) {x1 = 1 ; } yield return null;
}
} } ElseIf (y1 > 185) {y1 = -1 ;ElseIf (y1 < 62) {y1 = 1 ;Debug.Log(x1) ; Debug.Log(y1) ; punchIt (x1, y1) ;catch (System.Exception) {/ / Debug.Log ("Exception de délai d’attente") ;