unity中Input.GetAxis()用法

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TransformPointTest : MonoBehaviour {

    public Transform Cube;

    void FixedUpdate ()
    {
       // vector3.clampMagnitude(vector,maxlength)
       //返回原向量vector的拷贝,并且它的模长最大不超过maxlength的长度
       Cube.position =  Vector3.ClampMagnitude(Cube.position, 5);

       float x= Input.GetAxis("Horizontal");//对应键盘上的A键和D键 或←键和→键
       float z = Input.GetAxis("Vertical"); //对应键盘上的W键和S键 或↑键和↓键
       float h = Input.GetAxis("Mouse X"); //对应X方向上鼠标的移动,在移动设备上也可以这样
       float v = Input.GetAxis("Mouse Y"); //对应Y方向上鼠标的移动,在移动设备上也可以这样
       float m = Input.GetAxis("Fire1");  //对应鼠标左键或left+Ctrl
       float n = Input.GetAxis("Fire2");  //对应鼠标右键或left+Alt
       float k = Input.GetAxis("Fire3");  //对应鼠标中键或left+shift
        float m1 = Input.GetAxisRaw("Fire1");
        //input.getAxis()和input.getAxisRaw()的区别
        //input.getAxis()的返回值m从0渐变为1或者-1
        //input.getAxisRaw()的返回值从0变成1或者-1,没有渐变
        // transform.Translate(x,0,z);
        // transform.Translate(h,0,v);
         transform.Translate(0,0,m1);
    }

}
  • 22
    点赞
  • 98
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
要实现从 WebSocket 接收数据并将其用作输入轴的值,您需要编写一些自定义脚本代码。您可以使用 C# 的 WebSocket 类来连接到 WebSocket 服务器并接收数据。然后,您可以将接收到的数据转换为浮点数,并将其用作输入轴的值。 下面是一个简单的示例,演示如何从 WebSocket 接收数据并将其用作输入轴的值: ```csharp using UnityEngine; using System.Net.WebSockets; using System.Threading; using System.Threading.Tasks; public class WebSocketInput : MonoBehaviour { private ClientWebSocket client; private CancellationTokenSource cancellationToken; // 输入轴的名称 public string axisName = "WebSocketInput"; // 连接到的 WebSocket 服务器的 URL public string serverUrl = "ws://localhost:8080/"; async void Start() { client = new ClientWebSocket(); cancellationToken = new CancellationTokenSource(); await client.ConnectAsync(new System.Uri(serverUrl), cancellationToken.Token); StartReceiving(); } async void StartReceiving() { var buffer = new byte[1024]; var segment = new ArraySegment<byte>(buffer); while (client.State == WebSocketState.Open) { var result = await client.ReceiveAsync(segment, cancellationToken.Token); if (result.MessageType == WebSocketMessageType.Text) { float value = float.Parse(System.Text.Encoding.UTF8.GetString(buffer, 0, result.Count)); Input.GetAxis(axisName, value); } } } void OnApplicationQuit() { cancellationToken.Cancel(); client.CloseAsync(WebSocketCloseStatus.NormalClosure, "", CancellationToken.None).Wait(); } } ``` 在这个示例,我们使用 C# 的 ClientWebSocket 类连接到 WebSocket 服务器,并使用 StartReceiving() 方法从服务器接收数据。在接收到数据时,我们将其转换为浮点数,并将其用作输入轴的值。 要在 Unity 使用这个自定义输入轴,您需要在 Input Manager 创建一个新的虚拟轴,并使用 axisName 变量指定的名称。然后,在您的游戏,您可以使用 Input.GetAxis("WebSocketInput") 来获取这个自定义输入轴的值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值