- Home /
Unity 2018 Steam VR compiling issue
Hey Guy so I have an issue with Steam VR and Unity 2018. Basically Steam VR works fine in the editor I don't know about the build but I don't need to check it right now. However when I want to make a referance to a Steam VR scrip specifically SteamVR_Controller because I handle the input trought this script I just can't. I can't add the Valve Namespace because VS says it's not exist. I can't get any steam VR components at all.
I think this issue happening because of compiling order Because in scripts that are provided by vive. Namespace can be found, steam vr referances can be made. I moved the steam vr folder to Plugins, Streaming Assets ect no luck. I check the editor log and compared it to the log I got from an earlier version of unity and they both the same. At least about the SteamVR_Controller part. I just can't think of any solution same project works when I downgrade the project to 2017.2 but not in 2018. I tried the beta as well no luck. I would be so glad if someone can help me with this below you can see couple of treads that talks about the same problem but I couldn't find a solution for my self in there.
Main Error: 'SteamVR_Controller' could not be found (are you missing a using directive or an assembly reference?)"
https://steamcommunity.com/app/358720/discussions/0/352788552267492403/
https://answers.unity.com/questions/1343304/how-to-get-controller-input-when-using-the-steamvr.html
https://www.reddit.com/r/Vive/comments/4tnb66/i_keep_getting_a_the_type_or_namespace_name/
An example From my code:
public SteamVR_Controller.Device device { get { return SteamVR_Controller.Input((int)GetComponent<SteamVR_TrackedObject>().index); } } internal SteamVR_TrackedController controller; public virtual void HandleMenuButtonClicked(object sender, ClickedEventArgs e) { } public virtual void Init() { //controller = GetComponent<SteamVR_TrackedController>(); //laserLine = GetComponent<LineRenderer>(); //ToggleLaser(true); //rayPoint = transform; controller.MenuButtonClicked += HandleMenuButtonClicked; }
Answer by marpione · May 16, 2018 at 01:18 PM
Cleaner Version of the code dunno why it was so messy in the first post
public SteamVR_Controller.Device device
{
get
{
return SteamVR_Controller.Input((int)GetComponent<SteamVR_TrackedObject>().index);
}
}
//SteamVR_LaserPointer laserPointer;
internal SteamVR_TrackedController controller;
public virtual void HandleMenuButtonClicked(object sender, ClickedEventArgs e)
{
}
public virtual void Init()
{
//controller = GetComponent<SteamVR_TrackedController>();
//laserLine = GetComponent<LineRenderer>();
//ToggleLaser(true);
//rayPoint = transform;
controller.MenuButtonClicked += HandleMenuButtonClicked;
}
Your answer
Follow this Question
Related Questions
SteamVR 2.2 Change hand pose without interacting with an object 1 Answer
How do I switch levels when the user grabs an object in SteamVR? 0 Answers
SteamVR rendering a realistic red dot sight 0 Answers
Steam VR hands hit an invisible wall 0 Answers
Different between SteamVR and XR Interaction Toolkit 1 Answer