- Home /
The type or namespace name `AndroidDevice' could not be found. Are you missing an assembly reference?
Get 2 error The type or namespace name `AndroidDevice' could not be found. Are you missing an assembly reference? Error building Player because scripts had compiler errors
Answer by Reynarz · Jul 19, 2017 at 05:53 AM
You forgot add the assembly reference where that class live. if you are on Visual studio click in the AndroidDevice class and press " ctrl + . " and you will get some suggestions. See if there exist the assembly where that class live and add the reference.
Thanks but i don't use Visual studio i use monodevelop so how to add the assembly reference in that
Answer by Nikhil11 · Jul 26, 2017 at 02:10 PM
// Copyright 2015 Google Inc. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License.
if !UNITY_EDITOR
if UNITY_ANDROID #define ANDROID_DEVICE #elif UNITY_IPHONE #define IPHONE_DEVICE #endif #endif
using UnityEngine; using System.Collections.Generic; using System;
/// @cond namespace Gvr.Internal { // Represents a vr device that this plugin interacts with. public abstract class BaseVRDevice { private static BaseVRDevice device = null;
protected BaseVRDevice() {
Profile = GvrProfile.Default.Clone();
}
public GvrProfile Profile { get; protected set; }
public abstract void Init();
public abstract void SetUILayerEnabled(bool enabled);
public abstract void SetVRModeEnabled(bool enabled);
public abstract void SetDistortionCorrectionEnabled(bool enabled);
public abstract void SetSettingsButtonEnabled(bool enabled);
public abstract void SetAlignmentMarkerEnabled(bool enabled);
public abstract void SetVRBackButtonEnabled(bool enabled);
public abstract void SetShowVrBackButtonOnlyInVR(bool only);
public abstract void SetNeckModelScale(float scale);
public abstract void SetAutoDriftCorrectionEnabled(bool enabled);
public abstract void SetElectronicDisplayStabilizationEnabled(bool enabled);
public virtual bool SupportsNativeDistortionCorrection(List<string> diagnostics) {
return true;
}
public virtual bool RequiresNativeDistortionCorrection() {
return leftEyeOrientation != 0 || rightEyeOrientation != 0;
}
public virtual bool SupportsNativeUILayer(List<string> diagnostics) {
return true;
}
public virtual bool ShouldRecreateStereoScreen(int curWidth, int curHeight) {
return this.RequiresNativeDistortionCorrection()
&& (curWidth != (int)recommendedTextureSize[0]
|| curHeight != (int)recommendedTextureSize[1]);
}
public virtual RenderTexture CreateStereoScreen() {
float scale = GvrViewer.Instance.StereoScreenScale;
int width = Mathf.RoundToInt(Screen.width * scale);
int height = Mathf.RoundToInt(Screen.height * scale);
if (this.RequiresNativeDistortionCorrection()) {
width = (int)recommendedTextureSize[0];
height = (int)recommendedTextureSize[1];
}
//Debug.Log("Creating new default stereo screen texture "
// + width+ "x" + height + ".");
var rt = new RenderTexture(width, height, 24, RenderTextureFormat.Default);
rt.anisoLevel = 0;
rt.antiAliasing = Mathf.Max(QualitySettings.antiAliasing, 1);
return rt;
}
// Returns true if the URI was set as the device profile, else false. A default URI
// is only accepted if the user has not scanned a QR code already.
public virtual bool SetDefaultDeviceProfile(Uri uri) {
return false;
}
public virtual void ShowSettingsDialog() {
// Do nothing.
}
public Pose3D GetHeadPose() {
return this.headPose;
}
protected MutablePose3D headPose = new MutablePose3D();
public Pose3D GetEyePose(GvrViewer.Eye eye) {
switch(eye) {
case GvrViewer.Eye.Left:
return leftEyePose;
case GvrViewer.Eye.Right:
return rightEyePose;
default:
return null;
}
}
protected MutablePose3D leftEyePose = new MutablePose3D();
protected MutablePose3D rightEyePose = new MutablePose3D();
public Matrix4x4 GetProjection(GvrViewer.Eye eye,
GvrViewer.Distortion distortion = GvrViewer.Distortion.Distorted) {
switch(eye) {
case GvrViewer.Eye.Left:
return distortion == GvrViewer.Distortion.Distorted ?
leftEyeDistortedProjection : leftEyeUndistortedProjection;
case GvrViewer.Eye.Right:
return distortion == GvrViewer.Distortion.Distorted ?
rightEyeDistortedProjection : rightEyeUndistortedProjection;
default:
return Matrix4x4.identity;
}
}
protected Matrix4x4 leftEyeDistortedProjection;
protected Matrix4x4 rightEyeDistortedProjection;
protected Matrix4x4 leftEyeUndistortedProjection;
protected Matrix4x4 rightEyeUndistortedProjection;
public Rect GetViewport(GvrViewer.Eye eye,
GvrViewer.Distortion distortion = GvrViewer.Distortion.Distorted) {
switch(eye) {
case GvrViewer.Eye.Left:
return distortion == GvrViewer.Distortion.Distorted ?
leftEyeDistortedViewport : leftEyeUndistortedViewport;
case GvrViewer.Eye.Right:
return distortion == GvrViewer.Distortion.Distorted ?
rightEyeDistortedViewport : rightEyeUndistortedViewport;
default:
return new Rect();
}
}
protected Rect leftEyeDistortedViewport;
protected Rect rightEyeDistortedViewport;
protected Rect leftEyeUndistortedViewport;
protected Rect rightEyeUndistortedViewport;
protected Vector2 recommendedTextureSize;
protected int leftEyeOrientation;
protected int rightEyeOrientation;
public bool triggered;
public bool tilted;
public bool profileChanged;
public bool backButtonPressed;
public abstract void UpdateState();
public abstract void UpdateScreenData();
public abstract void Recenter();
public abstract void PostRender(RenderTexture stereoScreen);
public virtual void OnPause(bool pause) {
if (!pause) {
UpdateScreenData();
}
}
public virtual void OnFocus(bool focus) {
// Do nothing.
}
public virtual void OnLevelLoaded(int level) {
// Do nothing.
}
public virtual void OnApplicationQuit() {
// Do nothing.
}
public virtual void Destroy() {
if (device == this) {
device = null;
}
}
// Helper functions.
protected void ComputeEyesFromProfile() {
// Compute left eye matrices from screen and device params
Matrix4x4 leftEyeView = Matrix4x4.identity;
leftEyeView[0, 3] = -Profile.viewer.lenses.separation / 2;
leftEyePose.Set(leftEyeView);
float[] rect = new float[4];
Profile.GetLeftEyeVisibleTanAngles(rect);
leftEyeDistortedProjection = MakeProjection(rect[0], rect[1], rect[2], rect[3], 1, 1000);
Profile.GetLeftEyeNoLensTanAngles(rect);
leftEyeUndistortedProjection = MakeProjection(rect[0], rect[1], rect[2], rect[3], 1, 1000);
leftEyeUndistortedViewport = Profile.GetLeftEyeVisibleScreenRect(rect);
leftEyeDistortedViewport = leftEyeUndistortedViewport;
// Right eye matrices same as left ones but for some sign flippage.
Matrix4x4 rightEyeView = leftEyeView;
rightEyeView[0, 3] *= -1;
rightEyePose.Set(rightEyeView);
rightEyeDistortedProjection = leftEyeDistortedProjection;
rightEyeDistortedProjection[0, 2] *= -1;
rightEyeUndistortedProjection = leftEyeUndistortedProjection;
rightEyeUndistortedProjection[0, 2] *= -1;
rightEyeUndistortedViewport = leftEyeUndistortedViewport;
rightEyeUndistortedViewport.x = 1 - rightEyeUndistortedViewport.xMax;
rightEyeDistortedViewport = rightEyeUndistortedViewport;
float width = Screen.width * (leftEyeUndistortedViewport.width+rightEyeDistortedViewport.width);
float height = Screen.height * Mathf.Max(leftEyeUndistortedViewport.height,
rightEyeUndistortedViewport.height);
recommendedTextureSize = new Vector2(width, height);
}
private static Matrix4x4 MakeProjection(float l, float t, float r, float b, float n, float f) {
Matrix4x4 m = Matrix4x4.zero;
m[0, 0] = 2 * n / (r - l);
m[1, 1] = 2 * n / (t - b);
m[0, 2] = (r + l) / (r - l);
m[1, 2] = (t + b) / (t - b);
m[2, 2] = (n + f) / (n - f);
m[2, 3] = 2 * n * f / (n - f);
m[3, 2] = -1;
return m;
}
public static BaseVRDevice GetDevice() {
if (device == null) {
if UNITY_EDITOR
device = new EditorDevice();
elif ANDROID_DEVICE
device = new AndroidDevice();
elif IPHONE_DEVICE
device = new iOSDevice();
else
throw new InvalidOperationException("Unsupported device.");
endif
}
return device;
}
} } /// @endcond
//This is code in which #elif ANDROID_DEVICE // device = new AndroidDevice(); line is giving error
Your answer
![](https://koobas.hobune.stream/wayback/20220612130618im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
GoogleVR Cardboard reticle visible twice in VR mode 0 Answers
Steam Vr is not working - help 0 Answers
VR Climbing? 0 Answers
Can we make pc game with google cardboard as view & headtracking ?? 0 Answers
Google Cardboard Cannot See Reticle 1 Answer