- Home /
Question by
Joeman9832 · Jul 05, 2018 at 12:32 AM ·
fpsfps controllerarduinoserialportexternal controller
Arduino Button Input not working
I have the following code in unity and i am trying to make a controller for an fps:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO.Ports;
public class ControllerTest : MonoBehaviour {
SerialPort sp = new SerialPort("COM3", 9600);
// Use this for initialization
void Start () {
sp.Open();
sp.ReadTimeout = 5;
}
// Update is called once per frame
void Update () {
if (sp.IsOpen)
{
try
{
MoveObject(sp.ReadByte());
print(sp.ReadByte());
}
catch(System.Exception)
{
}
}
}
void MoveObject(int Shoot){
if(Shoot == 1){
Debug.Log("shot");
}
}
}
This is the code i have uploaded to my arduino:
const int btn1 = 8;
void setup(){
Serial.begin(9600);
pinMode(btn1, INPUT);
digitalWrite(btn1, HIGH);
}
void loop(){
if(digitalRead(btn1) == LOW){
Serial.write(1);
Serial.flush();
delay(20);
}
}
Unity doesn't seem to respond to my input other than the first time the button is pushed. When i had two buttons wired up unity responded perfectly fine. I just need to be able to execute code by pushing the button
Comment
Your answer
![](https://koobas.hobune.stream/wayback/20220612170049im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Using Arduino as controller in Unity is giving me bad framerate 1 Answer
How to add a footstep sound to rigidbody fps controller from standart assets (It has no animations)? 0 Answers
unity to serial ports ( blink LED ) 0 Answers
Increasing Unity Frame Rate? 0 Answers
FPS 3D camera view problem 0 Answers