使用Unity调用派样机技术小结

本文回顾了一个两年前的Unity项目,该项目实现了通过二维码交互触发派样机送出小礼品的功能。主要涉及Unity UI创建、服务器指令获取与判断、以及串口通信控制派样机。开发难点在于接收并响应服务器信号及控制硬件派样。代码示例展示了如何使用UnityWebRequest获取服务器数据以及通过串口通信控制派样机硬件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用Unity调用派样机技术小结

距离这个开发这个项目已经过去差不多两年时间了,今天我闲来无事清理电脑里项目的时候无意看到了这个项目。已经都过去将近两年时间了,时光荏苒啊!两年前的自己也是一个冲动的年轻人,拼了命的做项目,现在想想自己,年轻人还是真年轻呀。算了,废话不多说,今天在这里总结一下调用派样机的开发流程。

一、需求梳理

当时公司让实现一个什么样的功能呐?就是在派样机(类似于饮料自动购物机那种机器)上的电脑上,开发一款Unity程序,这款程序上有一个二维码,用户用微信扫一扫扫这个二维码,这时用户的手机上就会出现一个互动的小程序,用户互动完成后,服务器判断用户互动完成,给派样机的Unity程序发一个网络指令。Unity程序收到该指令后,使用串口通信给派样机发一个指令,派样机硬件收到该指令后,即调用硬件推出一个小礼物,送给用户。
1.派样机
这个项目不是什么很复杂的项目,这里面有两个难点。1.获取服务器传过来的信号,进行判断。2.判断完毕服务器的信号后,调用派样机,调用硬件进行派样。只要开发完成这两个功能后,这个项目就算是完成了。

二、开发步骤

1.首先在Unity中创建UI,将二维码贴在Unity的程序里的UI上,UI如下图所示。
在这里插入图片描述
2.开发获取服务器指令功能,并且进行判断,如果获取到正确的信息,即对派样机发送派样指令,代码如下。

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
using Newtonsoft.Json;
using UnityEngine.UI;

public class HttpNet : MonoBehaviour
{
   
    Action callback;
    /// <summary>
    /// 派样机字符类
    /// </summary>
    public ComManager comManager;
  
    // Start is called before the first frame update
    void Start()
    {
   
        callback += Dispchater;
        StartCoroutine(GetData(callback));
    }

    private void Dispchater()
    {
   
        //Debug.Log("掉小样!");
        comManager.DemoMechineSendCom();
    }
    //加载路径图片
    IEnumerator GetData(Action action)//Action action
    {
   

        while (true)
        {
   
            yield return new WaitForSeconds(2.0f);
            UnityWebRequest unityWebRequest = UnityWebRequest.Get("https://www.brandxspace.com/development/sendPrototype/getPrototypeState?flag=0");
            //UnityWebRequest unityWebRequest = UnityWebRequest.Get(jsonUrl);
            yield return unityWebRequest.SendWebRequest();
            if (!unityWebRequest.isNetworkError)
            {
   
                string data = unityWebRequest.downloadHandler.text;
                Data d = JsonConvert.DeserializeObject<Data>(data);
                if (d != null)
                {
   
                    Debug.Log(data + "------");
                    if (d.status == "1")
                    {
   
                       
                        //掉小样
                        if (action != null)
                        {
   
                            action();
                        }
                    }
                }
            }
        }
    }   
}
public class Data
{
   
    public string status;
    public String message;
    public object data;
}

3.开发调用派样机派样功能,该功能主要使用的是串口通信开发,如果对串口通信开发很熟悉的话这个也是十分简单的功能,主要是通过代码设置派样的顺序和速率,代码如下:
(1)CRC.CS

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

public class CRC
{
   

    #region  CRC16
    public static byte[] CRC16(byte[] data)
    {
   
        int len = data.Length;
        if (len > 0)
        {
   
            ushort crc = 0xFFFF;

            for (int i = 0; i < len; i++)
            {
   
                crc = (
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

波波斯维奇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值