Advertisement
Rodrigo_Moraes

Unity_arduino

Dec 21st, 2016
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.10 KB | None | 0 0
  1. /* Script criado por Rodrigo Martins Moraes, disponivel no grupo unity 3D Brasil: https://www.facebook.com/groups/unity3dbr/
  2.  * e-mail para contato: rodrigo_moraes@hotmail.com.br
  3.  */
  4. using System.Collections;
  5. using System.Collections.Generic;
  6. using System.IO.Ports; //<= permite utlizar as portas de comunicação ****API COMPATIBILITY LEVEL DEVE SER .NET 2.0 E NAO .NET 2.0 SUBSET
  7. using UnityEngine;
  8.  
  9. public class pular : MonoBehaviour {
  10.     SerialPort porta = new SerialPort("COM3", 9600); //define a variavel porta do tipo porta serial como a porta serial de comunicação 3 com velocidade de 9600 ***a porta com deve ser a que esta conectado o arduino
  11.     public Rigidbody rb;
  12.     public bool ascende_led = false;
  13.     bool led = false;
  14.     byte[] dados = { 0, 1 }; //cria um vetor de byte com os dados 0 e 1
  15.     // Use this for initialization
  16.     void Start()
  17.     {
  18.         porta.Open(); //abre a porta de comunicação
  19.         porta.ReadTimeout = 1;
  20.         rb = GetComponent<Rigidbody>();
  21.     }  
  22.     // Update is called once per frame
  23.     void Update () {
  24.         if (Input.GetKeyDown("space")) //pula quando aperta a tecla espaço
  25.         {
  26.             rb.AddForce(0, 200, 0);
  27.         }
  28.         if (porta.IsOpen) //se a porta estiver aberta adiciona o byte lido a função "Recebe"
  29.         {
  30.             try
  31.             {
  32.                 Recebe(porta.ReadByte());
  33.             }
  34.             catch (System.Exception) { }
  35.         }
  36.         if (ascende_led)
  37.         {
  38.             porta.Write(dados,1,1); //envia um byte do vetor dados posição 1 para a porta serial **** (nome_da_matriz,posição do vetor(0,1,2,3,4,...),numero de bytes a serem enviados)
  39.         }
  40.         else
  41.         {
  42.             porta.Write(dados,0,1); //envia um byte do vetor dados posição 0 para a porta serial
  43.         }
  44.     }
  45.     void Recebe(int btn) //função "Recebe" define o byte recebido como um inteiro
  46.     {
  47.         if(btn == 10) //se esse byte for 10 entao o personagem pula
  48.         {
  49.             rb.AddForce(0, 200, 0);
  50.         }
  51.     }
  52.     public void botao()
  53.     {
  54.         ascende_led = !ascende_led;
  55.     }
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement