Как я могу использовать код C# в Unity для работы на мобильных устройствах?C#

Место общения программистов C#
Ответить
Anonymous
 Как я могу использовать код C# в Unity для работы на мобильных устройствах?

Сообщение Anonymous »

Я написал фрагмент кода C# для работы на мобильных устройствах в Unity. Я тестировал на веб-камере, и все работало отлично.

Однако, когда я собирал его как APK, он не работал на моем мобильном устройстве, и проблема явно заключалась в коде C#. Я не знаком с мобильной средой и не совсем уверен, что код C# может выполняться на устройствах Android, но я думал, что Unity с этим справится.

Должен ли я признать, что C# нельзя запускать на мобильных устройствах, или есть решение?

Вот мой фрагмент кода:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using System.IO;

public class MenuScript : MonoBehaviour {

Texture2D screenCap;
Texture2D border;
bool shot = false;
public Button m_YourFirstButton;

// Use this for initialization
void Start () {

screenCap = new Texture2D(300, 200, TextureFormat.RGB24, false); // 1
border = new Texture2D(2, 2, TextureFormat.ARGB32, false); // 2
border.Apply();
m_YourFirstButton.onClick.AddListener(TaskOnClick);
}

// Update is called once per frame
void Update () {
}

public void TaskOnClick()
{
StartCoroutine("Capture");
}

void OnGUI()
{
GUI.DrawTexture(new Rect(200, 100, 300, 2), border, ScaleMode.StretchToFill); // Top
GUI.DrawTexture(new Rect(200, 300, 300, 2), border, ScaleMode.StretchToFill); // Bottom
GUI.DrawTexture(new Rect(200, 100, 2, 200), border, ScaleMode.StretchToFill); // Left
GUI.DrawTexture(new Rect(500, 100, 2, 200), border, ScaleMode.StretchToFill); // Right

if (shot)
{
GUI.DrawTexture(new Rect(10, 10, 60, 40), screenCap, ScaleMode.StretchToFill);
}
}

IEnumerator Capture()
{
yield return new WaitForEndOfFrame();
screenCap.ReadPixels(new Rect(198, 98, 298, 198), 0, 0);
screenCap.Apply();
byte[] bytes = screenCap.EncodeToPNG();
//Object.Destroy(screenCap);

// For testing purposes, also write to a file in the project folder
File.WriteAllBytes(Application.dataPath + "/SavedScreen.png", bytes);
shot = true;
}

}


Подробнее здесь: https://stackoverflow.com/questions/550 ... -on-mobile
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»