Stap 5: Eenheid deel 2 laat lezen en verplaatsen van de zak
Volg de video-tutorial voor stap voor stap uitleg of gewoon het volgende script toevoegen aan uw cilinder en veel plezier :)
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 () {
Stream. Open(); Stream. 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"); } } Update heet één keer per frame void Update () {punchDir = nieuwe Vector3 (x, 0, y); hoek = Vector2.Angle (Vector2.up, punchDir); als (hoek < 0) {Debug.Log ("negatieve waarde"); 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 _y) {punchDir = nieuwe Vector3 (_x, 0f, _y); punchingBag.AddForce(power * punchDir); speler. 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; anders als (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"); } else if (x1 < 62) {x1 = 1; } yield return null;
}
} } anders als (y1 > 185) {y1 = -1;anders als (y1 < 62) {y1 = 1;Debug.Log(x1); Debug.Log(y1); punchIt (x1, y1);vangen (System.Exception) {/ / Debug.Log ("TimeOut uitzondering");