У меня есть следующая ситуация. Я стараюсь размещать изображение с рукописного шрифта C# в Unity 3d, во время главный файл читает с Vuforia. То, что последует за мной, состоит в том, что с момента, который создал публичную переменную для изображения, он говорит мне, что она неясная.
В этой же самой сцене у меня есть текст, который я ввожу с базы данных, внутри элемента UI тип text и изображение, должно быть, остается на этом тексте. С текстом у меня нет никакого типа проблемы. Проблема предстает передо мной с изображением. если я снимаю UnityEngine. UI лишает себя меня конфликта с изображением, но я не могу использовать UI текста. Сейчас, если я снимаю Vuforia там, если у меня нет конфликта с изображением, но я не работает чтение главного файла. Далее я оставляю ему код, чтобы видеть мне могут помогать, чтобы мочь работать два элемента без того, чтобы он послал мне сообщение неясных.
Спасибо.
Ошибка:
ошибка CS0104:
Image' is an ambiguous reference between
Vuforia. ImagВ and 'UnityEngine. UI.Image'
Код
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Vuforia;
using UnityEngine.UI;
using Mono.Data.Sqlite;
using System.Data;
using System;
using System.IO;
public class reproduccionAudio : MonoBehaviour, ITrackableEventHandler
{
private TrackableBehaviour mTrackableBehaviour;
//public AudioClip otherClip;
private AudioSource audio;
private AudioSource[] allAudioSources;
public Text textoLibro;
private SqliteConnection dbconn;
private SqliteCommand dbcmd;
private SqliteDataReader reader;
private string conn;
private string namedb = "usuario.bytes";
public int nParrafo;
public Image imgEscena;
void Start()
{
//Traemos el valor del GameObject y lo acipnamos el audioSouce
audio = GetComponent<AudioSource>();
imgEscena = GameObject.Find ("Escenas").GetComponents<Image> ();
mTrackableBehaviour = GetComponent<TrackableBehaviour>();
if (mTrackableBehaviour)
{
mTrackableBehaviour.RegisterTrackableEventHandler(this);
}
}
public void OnTrackableStateChanged( TrackableBehaviour.Status previousStatus, TrackableBehaviour.Status newStatus){
/*
if(audio.isPlaying ){
audio.Stop ();
}*/
if (newStatus == TrackableBehaviour.Status.DETECTED ||
newStatus == TrackableBehaviour.Status.TRACKED ||
newStatus == TrackableBehaviour.Status.EXTENDED_TRACKED) {
allAudioSources = FindObjectsOfType (typeof(AudioSource)) as AudioSource[];
foreach (AudioSource audioS in allAudioSources){
audioS.Stop ();
}
textoLibro.text = "";
if (!audio.isPlaying) {
audio.Play ();
}
//Colocamos el texto de la naración en pantalla.
getOpenDb();
string sqlQuery = "Select * From textoLibros WHERE nParrafo = "+ nParrafo +" AND idusuario = 0";
dbcmd = dbconn.CreateCommand();
dbcmd.CommandText = sqlQuery;
reader = dbcmd.ExecuteReader ();
while(reader.Read()){
string names = reader.GetString (2);
textoLibro.text = names;
//Debug.Log (" Nombre"+ names);
}
imgEscena.sprite = Resources.Load<Sprite> ("escenas-RA/EscenaRa-01");
getCloseDb ();
}
}
//
// Creamos la conexion con la bd SQlite
//
public void getOpenDb(){
if (Application.platform != RuntimePlatform.Android) {
conn = Application.dataPath + "/StreamingAssets/" + namedb;
if(!File.Exists(conn)){
File.Create (conn);
}
} else {
conn = Application.persistentDataPath + "/" + namedb;
if (!File.Exists(conn))
{
// if it doesn't ->
// open StreamingAssets directory and load the db ->
WWW loadDB = new WWW("jar:file://" + Application.dataPath + "!/assets/" + namedb); // this is the path to your StreamingAssets in android
while (!loadDB.isDone) { } // CAREFUL here, for safety reasons you shouldn't let this while loop unattended, place a timer and error check
// then save to Application.persistentDataPath
File.WriteAllBytes(conn, loadDB.bytes);
}
}
dbconn = new SqliteConnection ("URI=file:" + conn);
dbconn.Open ();
}
//
//Cerramos la conexión Sqlite
//
public void getCloseDb(){
reader.Close ();
reader = null;
dbcmd.Dispose ();
dbcmd = null;
dbconn.Close ();
dbconn = null;
}
}
Оба librerГ-схвати aГ±aden класс Image, что C# не знает в quГ© Image 2, ты относишься.
В этом случае tendrГЎs, что включать область имен в ней declaraciГіn:
public Vuforia.Image imgEscena;
Vuforia.Image[]' to
Vuforia. Image') ** в линии 'imgEscena = GameObject. Find (" Escenas").GetComponents< Vuforia. Image> ();'. – Yoel Rodriguez 20.03.2019, 22:44public Vuforia.Image[] imgEscena;
, решит тебе проблему, но если ты нуждаешься только в изображении, ты был бы должен упорядочивать код, чтобы не приносить больше одной. – Francisco Garrido 20.03.2019, 22:49