Доступ к жесткому телу из разных скриптов одновременно - PullRequest
0 голосов
/ 23 января 2020

Я использую два контроллера смешанной реальности одновременно. Правый и левый триггеры делают разные вещи в моей игре. Проблема в том, что за один раз я могу получить доступ только к одному из них. Если к левому контроллеру прикреплен скрипт, он будет работать правильно. Если к правильному контроллеру прикреплен скрипт, он будет работать правильно. Но я не могу заставить их работать одновременно. Я приложил код ниже. Этот скрипт находится на обоих контроллерах.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Valve.VR;

public class ControllerRight : MonoBehaviour
{
    public GameObject ballObj;
    Rigidbody rb;

    public SteamVR_Behaviour_Pose pose;
    public SteamVR_Input_Sources handType;
    public SteamVR_Action_Single clickTrigger;
    // Start is called before the first frame update
    void Start()
    {

        rb = ballObj.GetComponent<Rigidbody>();

    }

    // Update is called once per frame
    void FixedUpdate()
    {
        Debug.Log("Trigger Status: " + clickTrigger.GetAxis(handType));
        if (clickTrigger.GetAxis(handType) > 0.5)
        {
            rb.velocity = Vector3.forward * clickTrigger.GetAxis(handType) * 10;
        }
        else if (clickTrigger.GetAxis(handType) == 0)
        {
            rb.velocity = new Vector3(0, 0, 0);
        }
    }

}

1 Ответ

0 голосов
/ 25 января 2020

Вместо установки скорости твердого тела, попробуйте применить силу в направлении ввода. Таким образом, два контроллера не будут перекрывать друг друга, но приводят к некоторому комбинированному движению.

...