Последняя версия java (Java 7) позволяет операторам операторов switch в Strings, если вариантов не так много, вы могли бы просто сделать это или подобное:
int value = getValue();
Switch(myString) {
Case "value > 2" : if (value > 2) { doSomething();} break;
Case "4 < value < 6" : if (4 < value < 6) { doSomethingElse();} break;
default : doDefault();
}
Сначала я пытаюсь заставить его работать только с изображениями.
Я очень новичок в Unity и не очень хорош с C #. Я могу получить все источники медиа-файлов (изображений) в массив, но затем мне нужно преобразовать их в текстуру и разместить на RawImage -компонент. Я застрял в этой части.
blockquote>Вы ищете функцию
Texture2D.LoadImage
. Он преобразует байты изображения в Texture2D, тогда вы можете назначить Texture2D для RawImage.Вы должны задать новый вопрос о том, как сделать это с помощью видео. Это намного сложнее.
public RawImage rawImage; Texture2D[] textures = null; //Search for files DirectoryInfo dir = new DirectoryInfo(@"C:\medias"); string[] extensions = new[] { ".jpg", ".JPG", ".jpeg", ".JPEG", ".png", ".PNG", ".ogg", ".OGG" }; FileInfo[] info = dir.GetFiles().Where(f => extensions.Contains(f.Extension.ToLower())).ToArray(); //Init Array textures = new Texture2D[info.Length]; for (int i = 0; i < info.Length; i++) { MemoryStream dest = new MemoryStream(); //Read from each Image File using (Stream source = info[i].OpenRead()) { byte[] buffer = new byte[2048]; int bytesRead; while ((bytesRead = source.Read(buffer, 0, buffer.Length)) > 0) { dest.Write(buffer, 0, bytesRead); } } byte[] imageBytes = dest.ToArray(); //Create new Texture2D Texture2D tempTexture = new Texture2D(2, 2); //Load the Image Byte to Texture2D tempTexture.LoadImage(imageBytes); //Put the Texture2D to the Array textures[i] = tempTexture; } //Load to Rawmage? rawImage.texture = textures[0];