steamvr串流左摇杆动不了

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了steamvr串流左摇杆动不了相关的知识,希望对你有一定的参考价值。

参考技术A 在使用 Pico Neo 3 进行 串流 时,了解一些 基础操作 是必不可少的。
基础操作 
(一)连接好后,怎么打开、切换游戏?
1、进入串流后, SteamVR 的软件接管了手柄按键功能,在摇杆模式下, 仅支持左手 Home 键 唤出 SteamVR 的快捷面板,可打开游戏、切换游戏。
2、如需退出串流回到串流助手页面中,需按头戴返回键返回。
3、如需回到一体机 Launcher 中,需按 头戴 Home 键 返回。
参考技术B 网络vrchat右手手柄没反应的问题。vrchatvrchat右手手柄没反应的左摇杆不显示没反应多数是网络连接异常导致。

1、首先打开电脑检查网络。

2、其次打开浏览器进行测试网络连接是否异常。

3、最后等待网络连接正常后vrchat右手手柄没反应,点击vrchat重新进入即可解决。

玩VRchat要用到哪些设备,能不能列举出来(萌新一个)
VRchat需要使用的设备包括:vr头戴式显示器(HTC Vive、Oculus Rift、OSVR)、手柄、键盘 / 鼠标。

1、HTC Vive:

是由HTC与Valve联合开发的一款VR头显(虚拟现实头戴式显示器)产品,在Steam平台上已经可以体验利用Vive功能的虚拟现实游戏。

2、Oculus Rift:

一款为电子游戏设计的头戴式显示器。这是一款虚拟现实设备。这款设备很可能改变未来人们游戏的方式。Oculus Rift具有两个目镜,每个目镜的分辨率为 640×800,双眼的视觉合并之后拥有 1280×800 的分辨率。

3、OSVR:

OSVR旨在支持软件插件(Unity 3D、虚幻引擎4和英雄引擎(HeroEngine)、输入硬件(Sixsense和Leap Motion等)及其他虚拟现实的设备,包括Oculus rift DK2和Vrvana Totem。

4、手柄:

一种电子游戏机的输入设备,通过操纵其按钮等,可以实现对电脑上模拟角色等的控制。

5、键盘 / 鼠标:

键盘是用于操作设备运行的一种指令和数据输入装置,也指经过系统安排操作一台机器或设备的一组功能键(如打字机、电脑键盘)。

计算机的一种外接输入设备,也是计算机显示系统纵横坐标定位的指示器,鼠标的使用是为了使计算机的操作更加简便快捷,来代替键盘那繁琐的指令。

ios怎么玩vrchat
方法如下:

1.获取资源:在网上搜一些VR游戏的相关推荐或者在App Store中下载一些VR内容类应用(推荐一款叫做PicoVR的应用内含一些视频资源,游戏部分也有先关推荐)。选好自己心仪的游戏后,通过App Store下载至本地。

2.使用VR设备体验游戏:打开游戏,将手机置于VR设备中(再推荐下Pico的VR设备Pico 1S,可以调节近视,有触控板,比市面上大多数的设备用料做工都要精良),按照游戏中的提示完成操作进入游戏。

3.游戏操作:VR游戏最基础的操作方式为头控配合凝视,不过有的游戏需要配合手柄使用。刚刚提到的Pico 1S中有触控板可以通过蓝牙连接完成一些操作。如果触控板不能满足需要,可以额外通过手机蓝牙连接手机手柄。进行游戏操作。

新出的arpara PCVR的 游戏套装能玩VRchat吗?
当然可以了,而且arpara游戏套装可以支持SteamVR定位基站实现精准定位,SteamVR平台的游戏都是可以玩的,其中当然也包括题主问的《VRChat》,建议配个指虎手柄,可以实现五指自由比手势,试过arpara再换别的设备,百度网友为您解答。

vrchat突然不能wasd走路了
可能手柄没有电或者是vrchat出现故障。

具体解决方法为:

1、将手柄充电,过一会儿后重新使用vrchat观察一下是否继续出现这个情况。

2、若是继续出现不能走路的情况,则是vrchat出现故障,这时就需要进行联系售后处理。

VRChat是一款Steam平台的免费游戏,即不需要付费就可以开始开始游玩,大家可以直接在Steam商城中搜索VRChat后点击进入即可。

关于vrchat右手手柄没反应和为什么我的vr手柄用不了的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

vrchat右手手柄没反应
程先分享
本文链接:https://www.cxvlog.com/chatgpt/121000.html

上一篇
推特视频怎么下载本地(怎么在推特上面下载视频)

下一篇
推特加载不出图片(推特加载不出图片安卓)

相关文章
vrchat看不到好友列表了(vrchat查看好友)2023-02-10
potatochat安卓版下载百度云(potatochatapp下载)2023-02-10
vrchat怎么同意好友申请房间(vrchat怎么加入房间)2023-02-10
openai怎么进(OpenAI CLIP)2023-02-10
为什么snapchat特效加载不出来(snapchat加载很慢)2023-02-10
土豆聊天potatochat(土豆聊天potato官网)2023-02-10
vrchat怎么放特效(vrchat怎么用vr玩)2023-02-10
vrchat下载地图卡住不动了(vrchat卡加载)2023-02-10
电脑wechatfiles可以移动吗(wechatfiles在哪里)2023-02-10
参考技术C 可能是控制器的电池电量不足,请检查控制器的电池电量,如果电量不足,请及时充电。另外,也可能是控制器的连接问题,请检查控制器是否正确连接到计算机,并确保SteamVR正确安装并正确运行。

Unity3D摇杆

1 需求实现

1)需求实现

  • 鼠标拖拽摇杆球控制坦克移动;
  • 上下左右按键也可以控制坦克移动,并且摇杆球也同步移动;
  • 鼠标右键滑动,控制坦克转向;
  • 相机在玩家后上方的位置,始终跟随玩家,朝玩家正前方看;
  • 单击鼠标左键或按空格键控制坦克发射炮弹。

2)涉及技术栈

​ 本文代码资源见 → Unity3D 摇杆控制物体运动

2 游戏对象

1)游戏界面

2)游戏对象层级结构

3)Transform组件参数

​ 1. 玩家 Transform 组件参数

Name Type Position Rotation Scale Color/Texture
Player Empty (0, 0.25, -5) (0, 0, 0) (1, 1, 1) #228439FF
Botton Cube (0, 0, 0) (0, 0, 0) (2, 0.5, 2) #228439FF
Top Cube (0, 0.5, 0) (0, 0, 0) (1, 0.5, 1) #228439FF
Gun Cylinder (0, 0, 1.5) (90, 0, 0) (0.2, 1, 0.4) #228439FF
FirePoint Empty (0, 1.15, 0) (0, 0, 0) (1, 1, 1) ——

​ 补充:Player 游戏对象添加了刚体组件。

​ 2. 地面和炮弹 Transform 组件参数

Name Type Position Rotation Scale Color/Texture
Plane Plane (0, 0, 0) (0, 0, 0) (10, 10, 10) GrassRockyAlbedo
Bullet Sphere (0, 0.5, -5) (0, 0, 0) (0.3, 0.3, 0.3) #228439FF

​ 补充:炮弹作为预设体拖拽到 Assets/Resources/Prefabs 目录下,并且添加了刚体组件。

​ 3. 摇杆 RectTransform 组件参数

Name Type Width/Height Pos Anchors
Stick Canvas —— —— ——
Background Image (100, 100) (75, 75, 0) (0, 0), (0, 0)
Ball Image (40, 40) (75, 75, 0) (0, 0), (0, 0)

3 脚本组件

1)CameraController

​ CameraController.cs

using UnityEngine;
 
public class CameraController : MonoBehaviour 
	private Transform player; // 玩家
	private Vector3 relaPlayerPos; // 相机在玩家坐标系中的位置
	private float targetDistance = 15f; // 相机看向玩家前方的位置
 
	private void Start() 
		relaPlayerPos = new Vector3(0, 4, -8);
		player = GameObject.Find("Player/Top").transform;
	
 
	private void LateUpdate() 
		CompCameraPos();
	
 
	private void CompCameraPos()  // 计算相机坐标
		Vector3 target = player.position + player.forward * targetDistance;
		transform.position = transformVecter(relaPlayerPos, player.position, player.right, player.up, player.forward);
		transform.rotation = Quaternion.LookRotation(target - transform.position);
	
 
	// 求以origin为原点, locX, locY, locZ 为坐标轴的本地坐标系中的向量 vec 在世界坐标系中对应的向量
	private Vector3 transformVecter(Vector3 vec, Vector3 origin, Vector3 locX,  Vector3 locY,  Vector3 locZ) 
		return vec.x * locX + vec.y * locY + vec.z * locZ + origin;
	

​ 说明: CameraController 脚本组件挂在 MainCamera 游戏对象上。

2)PlayerController

​ PlayerController.cs

using System;
using UnityEngine;
 
public class PlayerController : MonoBehaviour 
	private Transform firePoint; // 开火点
	private GameObject bulletPrefab; // 炮弹预设体
	private StickController stick; // 摇杆控制器
	private float tankMoveSpeed = 4f; // 坦克移动速度
	private float tankRotateSpeed = 2f; // 坦克转向速度
	private Vector3 predownMousePoint; // 鼠标按下时的位置
	private Vector3 currMousePoint; // 当前鼠标位置
	private float fireWaitTime = float.MaxValue; // 距离上次开火已等待的时间
	private float bulletCoolTime = 0.15f; // 炮弹冷却时间

 	private void Start() 
		firePoint = transform.Find("Top/Gun/FirePoint");
		bulletPrefab = (GameObject) Resources.Load("Prefabs/Bullet");
		stick = GameObject.Find("Stick/Ball").GetComponent<StickController>();
	

	private void Update() 
		Move();
		Rotate();
		Fire();
	
 
	private void Move()  // 坦克移动
		float hor = Input.GetAxis("Horizontal");
        float ver = Input.GetAxis("Vertical");
		Move(hor, ver);
	

	public void Move(float hor, float ver)  // 坦克移动
		if (Mathf.Abs(hor) > float.Epsilon || Mathf.Abs(ver) > float.Epsilon) 
			Vector3 vec = transform.forward * ver + transform.right * hor;
			GetComponent<Rigidbody>().velocity = vec * tankMoveSpeed;
			// stick.UpdateStick(new Vector3(hor, 0, ver));
			Vector3 dire = new Vector3(hor, ver, 0);
			dire =  dire.normalized * Mathf.Min(dire.magnitude, 1);
			stick.UpdateStick(dire);
		
	

	private void Rotate()  // 坦克旋转
		if (Input.GetMouseButtonDown(1)) 
			predownMousePoint = Input.mousePosition;
		 else if (Input.GetMouseButton(1)) 
			currMousePoint = Input.mousePosition;
			Vector3 vec = currMousePoint - predownMousePoint;
			GetComponent<Rigidbody>().angularVelocity = Vector3.up * tankRotateSpeed * vec.x;
			predownMousePoint = currMousePoint;
		
	

	private void Fire()  // 坦克开炮
		fireWaitTime += Time.deltaTime;
		if (Input.GetMouseButtonDown(0) && !IsMouseInUIArea() || Input.GetKeyDown(KeyCode.Space)) 
			if (fireWaitTime > bulletCoolTime) 
				BulletInfo bulletInfo = new BulletInfo("PlayerBullet", Color.red, transform.forward, 10f, 15f);
				GameObject bullet = Instantiate(bulletPrefab, firePoint.position, Quaternion.identity);
				bullet.AddComponent<BulletController>().SetBulletInfo(bulletInfo);
				fireWaitTime = 0f;
			
		
	

	private bool IsMouseInUIArea()  // 鼠标在UI控件区域
		Vector3 pos = Input.mousePosition;
		return pos.x < 150 && pos.y < 150;
	

​ 说明: PlayerController 脚本组件挂在 Player 游戏对象上。

3)StickController

​ StickController.cs

using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;

public class StickController : MonoBehaviour, IDragHandler, IEndDragHandler 
	private Vector3 originPos; // 鼠标开始拖拽时位置
	private Vector3 currPos; // 鼠标当前位置
	private float radius; // 遥杆半径
	private PlayerController player; // 玩家控制器
	private Vector3 dire = Vector3.zero; // 摇杆球的方位

	private void Start () 
		originPos = transform.position;
		radius = 50;
		player = GameObject.Find("Player").GetComponent<PlayerController>();
	

	private void Update () 
		player.Move(dire.x, dire.y);
	

	public void OnDrag(PointerEventData eventData) 
		Vector3 vec = Input.mousePosition - originPos;
		dire = vec.normalized * Mathf.Min(vec.magnitude / radius, 1);
		UpdateStick(dire);
	

	public void OnEndDrag(PointerEventData eventData) 
		transform.position = originPos;
		dire = Vector3.zero;
	

	public void UpdateStick(Vector3 dire)  // 更新摇杆位置
		transform.position = originPos + dire * radius;
	

​ 说明: StickController 脚本组件挂在 Ball 游戏对象上。

4)BulletController

​ BulletController.cs

using UnityEngine;
using UnityEngine.UI;

public class BulletController : MonoBehaviour 
	private BulletInfo bulletInfo; // 炮弹信息

	private void Start () 
		gameObject.name = bulletInfo.name;
		GetComponent<MeshRenderer>().material.color = bulletInfo.color;
		float lifeTime = bulletInfo.fireRange / bulletInfo.speed; // 存活时间
		Destroy(gameObject, lifeTime);
	

	private void Update () 
		transform.GetComponent<Rigidbody>().velocity = bulletInfo.flyDir * bulletInfo.speed;
	

	public void SetBulletInfo(BulletInfo bulletInfo) 
		this.bulletInfo = bulletInfo;
	

​ 说明: BulletController 脚本组件挂在 Bullet 游戏对象上(代码里动态添加)。

5)BulletInfo

​ BulletInfo.cs

using UnityEngine;

public class BulletInfo 
	public string name; // 炮弹名
	public Color color; // 炮弹颜色
	public Vector3 flyDir; // 炮弹飞出方向
	public float speed; // 炮弹飞行速度
	public float fireRange; // 炮弹射程

	public BulletInfo(string name, Color color, Vector3 flyDir, float speed, float fireRange) 
		this.name = name;
		this.color = color;
		this.flyDir = flyDir;
		this.speed = speed;
		this.fireRange = fireRange;
	

4 运行效果

​ 声明:本文转自【Unity3D】摇杆

以上是关于steamvr串流左摇杆动不了的主要内容,如果未能解决你的问题,请参考以下文章

Unity SteamVR插件集成

Valve取消SteamVR对MacOS的后续支持

SteamVR终止对MacOS的支持 将专注于Windows及Linux

Unity SteamVR插件集成

关于Unity中SteamVR_Controller.Input的错误

SteamVR将放弃支持苹果macOS系统:专注Windows 10和Linux