C# IOS中奇怪的统一bug

C# IOS中奇怪的统一bug,c#,ios,unity3d,C#,Ios,Unity3d,我在我的项目中遇到了一个奇怪的错误。它在unity中运行得非常完美,但当我为IOS构建它时,有一件事做得特别不同。当用户选择8个项目时,我有一个输入框显示这些项目以及他们选择它们的顺序。这在unity中非常有效,但在IOS中却不行。任何人都有任何关于为什么会出现这种情况的建议。下面是两个适当的脚本 using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using U

我在我的项目中遇到了一个奇怪的错误。它在unity中运行得非常完美,但当我为IOS构建它时,有一件事做得特别不同。当用户选择8个项目时,我有一个输入框显示这些项目以及他们选择它们的顺序。这在unity中非常有效,但在IOS中却不行。任何人都有任何关于为什么会出现这种情况的建议。下面是两个适当的脚本

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

public class PickUpItem : MonoBehaviour, IInteractable
{

    //Go back to older version of clavem, find out what broke. 

    public string DisplaySprite;

    public string DisplayImage;

    public static string ItemChoosenOrder;

    public static int counter;

    public static GameObject InventorySlots;

    public static GameObject[] PlayerItems = new GameObject[8];

    public void Interact(DisplayImage currentDisplay)
    {
        ItemPickUp();
    }

    void Start()
    {
        PlayerItems = GameObject.FindGameObjectsWithTag("ChoosenItem");
    }

    void Update()
    {

    }

    public void ItemPickUp()
    {
        InventorySlots = GameObject.Find("Slots");

        counter = 0;

        foreach (Transform slot in InventorySlots.transform)
        {
            if (slot.transform.GetChild(0).GetComponent<Image>().sprite.name == "empty_item")
            {
                slot.transform.GetChild(0).GetComponent<Image>().sprite =
                    Resources.Load<Sprite>("Inventory Items/" + DisplaySprite);
                Destroy(gameObject);
                break;
            }


            if (counter <= 7)
            {

                counter++;

                if (counter >= 7)
                {

                    {

                        Debug.Log("You have choosen all your items.");

                        foreach (Transform finalslot in InventorySlots.transform)
                        {
                            if (finalslot.transform.GetChild(0).GetComponent<Image>().sprite.name == "empty_item")
                            {
                                finalslot.transform.GetChild(0).GetComponent<Image>().sprite =
                                    Resources.Load<Sprite>("Inventory Items/" + DisplaySprite);
                                Destroy(gameObject);
                                break;
                            }
                        }

                        //https://hub.packtpub.com/arrays-lists-dictionaries-unity-3d-game-development/

                        if (PlayerItems[7].GetComponent<Image>().sprite.name != "empty_item")
                        {
                            PlayerItems = GameObject.FindGameObjectsWithTag("ChoosenItem");


                            ItemChoosenOrder = "1: " + PlayerItems[0].GetComponent<Image>().sprite.name + " 2: " + PlayerItems[1].GetComponent<Image>().sprite.name
                            + " 3: " + PlayerItems[2].GetComponent<Image>().sprite.name + " 4: " + PlayerItems[3].GetComponent<Image>().sprite.name
                                + " 5: " + PlayerItems[4].GetComponent<Image>().sprite.name + " 6: " + PlayerItems[5].GetComponent<Image>().sprite.name
                            + " 7: " + PlayerItems[6].GetComponent<Image>().sprite.name + " 8: " + PlayerItems[7].GetComponent<Image>().sprite.name;

                            Debug.Log(ItemChoosenOrder);
                            Debug.Log(counter);
                        }

                        else
                        {
                            Debug.Log("Error choosing items");
                        }


                    }


                }


            }


        }

    }
}
使用系统;
使用系统集合;
使用System.Collections.Generic;
使用UnityEngine;
使用UnityEngine.UI;
使用System.IO;
公共类拾取项:单行为,可交互
{
//回到旧版本的clavem,找出是什么坏了。
公共字符串显示精灵;
公共字符串显示图像;
公共静态字符串itemChooseOrder;
公共静态计数器;
公共静态游戏对象清单;
公共静态游戏对象[]PlayerItems=新游戏对象[8];
公共void交互(DisplayImage currentDisplay)
{
项目拾取();
}
void Start()
{
PlayerItems=GameObject.FindGameObjectsWithTag(“ChooseItem”);
}
无效更新()
{
}
公开作废物品拾捡()
{
InventorySlots=GameObject.Find(“插槽”);
计数器=0;
foreach(InventorySlots.Transform中的转换槽)
{
if(slot.transform.GetChild(0.GetComponent().sprite.name==“空项”)
{
slot.transform.GetChild(0.GetComponent().sprite=
加载(“库存项目/”+DisplaySprite);
摧毁(游戏对象);
打破
}
如果(计数器=7)
{
{
Log(“您已经选择了所有项目。”);
foreach(在InventorySlots.Transform中转换最终批次)
{
if(finalslot.transform.GetChild(0.GetComponent().sprite.name==“空项”)
{
finalslot.transform.GetChild(0.GetComponent().sprite=
加载(“库存项目/”+DisplaySprite);
摧毁(游戏对象);
打破
}
}
//https://hub.packtpub.com/arrays-lists-dictionaries-unity-3d-game-development/
if(PlayerItems[7].GetComponent().sprite.name!=“空项”)
{
PlayerItems=GameObject.FindGameObjectsWithTag(“ChooseItem”);
ItemChooseOrder=“1:”+PlayerItems[0]。GetComponent().sprite.name+“2:”+PlayerItems[1]。GetComponent().sprite.name
+“3:”+PlayerItems[2]。GetComponent().sprite.name+“4:”+PlayerItems[3]。GetComponent().sprite.name
+“5:”+PlayerItems[4]。GetComponent().sprite.name+“6:”+PlayerItems[5]。GetComponent().sprite.name
+“7:”+PlayerItems[6]。GetComponent().sprite.name+“8:”+PlayerItems[7]。GetComponent().sprite.name;
Log(itemChooseOrder);
调试日志(计数器);
}
其他的
{
Log(“选择项时出错”);
}
}
}
}
}
}
}
saveitemhash

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

public class SaveItemHash : MonoBehaviour
{
    public InputField choosenitems;

    public Text playerDisplay;

    public Text InfoText;

    public Button SaveButton;

    private void Awake()
    {
        if (DBManager.email == null)
        {
            UnityEngine.SceneManagement.SceneManager.LoadScene(0);
        }
        playerDisplay.text = "User: " + DBManager.email;
    }

    public void CallAddItems()
    {
        StartCoroutine(AddChoosenItems());
    }

    IEnumerator AddChoosenItems()
    {
        //Using a unity web request to send email and choosen items string to my php scripts which echo a number depending on whether the user is successful or not.
        WWWForm form = new WWWForm();
        form.AddField("email", DBManager.email);
        form.AddField("items", choosenitems.text);
        WWW www = new WWW("https://clavem.000webhostapp.com/userregister.php", form);
        yield return www;
        if (www.text[0] == '0')
        {
            Debug.Log("User added successfully.");
            UnityEngine.SceneManagement.SceneManager.LoadScene(0);
            PickUpItem.counter = 0;
            PickUpItem.ItemChoosenOrder = " ";
        }
        else
        {
            Debug.Log("User adding failed. Error #" + www.text);
            InfoText.text = www.text;
            PickUpItem.counter = 0;
            PickUpItem.ItemChoosenOrder = " ";
        }
    }

    public void Update()
    {
        playerDisplay.text = "User: " + DBManager.email;
        if (PickUpItem.counter > 7)
        {
            //Do this for add field in last scene where the passwords are. 
            GameObject.Find("SaveButton").transform.localScale = new Vector3(1, 1, 1);
            choosenitems.text = PickUpItem.ItemChoosenOrder;
            GameObject.Find("InputField").transform.localScale = new Vector3(1, 1, 1);
            //choosenitems.text = PickUpItem.ItemChoosenOrder;
            //Debug.Log(PickUpItem.ItemChoosenOrder);
        }
        if (PickUpItem.counter < 7)
        {
            GameObject.Find("SaveButton").transform.localScale = new Vector3(0, 0, 0);
            GameObject.Find("InputField").transform.localScale = new Vector3(0, 0, 0);
        }
    }

    public void RestartScene()
    {
        UnityEngine.SceneManagement.SceneManager.LoadScene(3); ;
        PickUpItem.counter = 0;
        PickUpItem.ItemChoosenOrder = " ";
    }

}
使用系统集合;
使用System.Collections.Generic;
使用UnityEngine;
使用UnityEngine.UI;
公共类SaveItemHash:MonoBehavior
{
公共输入字段选择项;
公共文本播放;
公共文本信息文本;
公共按钮保存按钮;
私人空间
{
if(DBManager.email==null)
{
UnityEngine.SceneManagement.SceneManager.LoadScene(0);
}
playerDisplay.text=“用户:”+DBManager.email;
}
public void CallAddItems()
{
Start例程(addChooseItems());
}
IEnumerator addChooseItems()
{
//使用unity web请求发送电子邮件并选择items字符串到我的php脚本,这些脚本根据用户是否成功返回一个数字。
WWWForm form=新WWWForm();
form.AddField(“email”,DBManager.email);
form.AddField(“items”,选择items.text);
WWW=新WWW(“https://clavem.000webhostapp.com/userregister.php“,表格);
收益率;
如果(www.text[0]=“0”)
{
Log(“用户添加成功”);
UnityEngine.SceneManagement.SceneManager.LoadScene(0);
PickUpItem.counter=0;
PickUpItem.ItemChooseSonOrder=“”;
}
其他的
{
Debug.Log(“用户添加失败。错误#”+www.text);
InfoText.text=www.text;
PickUpItem.counter=0;
PickUpItem.ItemChooseSonOrder=“”;
}
}
公共无效更新()
{
playerDisplay.text=“用户:”+DBManager.email;
如果(PickUpItem.counter>7)
{
//对密码所在的最后一个场景中的“添加”字段执行此操作。
GameObject.Find(“SaveButton”).transform.localScale=newvector3(1,1,1);
ChooseItems.text=PickUpItem.ItemChooseOrder;
GameObject.Find(“InputField”).transform.localScale=newvector3(1,1,1);
//ChooseItems.text=PickUpItem.ItemChooseOrder;
//Debug.Log(PickUpItem.ItemChooseOrder);
}
if(拾取项目计数器<7)
{
GameObject.Find(“SaveButton”).transform.localScale=newvector3(0,0,0);
GameObject.Find(“InputField”).transform.localScale=newvector3(0,0,0);
}
}
public void restartsecene()
{
尤蒂扬吉
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using System.IO;
using System.Linq;

public class PickUpItem : MonoBehaviour, IInteractable
{

    public string DisplaySprite;

    public string DisplayImage;

    public static List<string> itemOrder = new List<string>();

    public static string ItemChoosenOrder;

    public static int counter;

    public static GameObject InventorySlots;

    public static GameObject[] PlayerItems = new GameObject[8];

    public void Interact(DisplayImage currentDisplay)
    {
        ItemPickUp();
    }

    void Start()
    {
        PlayerItems = GameObject.FindGameObjectsWithTag("ChoosenItem");
    }

    void Update()
    {

    }

    public void ItemPickUp()
    {
        InventorySlots = GameObject.Find("Slots");

        counter = 0;

        int j;

        foreach (Transform slot in InventorySlots.transform)
        {
            if (slot.transform.GetChild(0).GetComponent<Image>().sprite.name == "empty_item")
            {
                slot.transform.GetChild(0).GetComponent<Image>().sprite =
                    Resources.Load<Sprite>("Inventory Items/" + DisplaySprite);
                Destroy(gameObject);
                break;
            }


            if (counter <= 7)
            {
                //itemOrder.Add(PlayerItems[counter].GetComponent<Image>().sprite.name);

                counter++;


                if (counter >= 7)
                {

                    {
                        PlayerItems = GameObject.FindGameObjectsWithTag("ChoosenItem");

                        Debug.Log("You have choosen all your items.");

                        foreach (Transform finalslot in InventorySlots.transform)
                        {
                            if (finalslot.transform.GetChild(0).GetComponent<Image>().sprite.name == "empty_item")
                            {
                                finalslot.transform.GetChild(0).GetComponent<Image>().sprite =
                                    Resources.Load<Sprite>("Inventory Items/" + DisplaySprite);
                                Destroy(gameObject);
                                break;
                            }
                        }

                        itemOrder.Add(GameObject.Find("item0").GetComponent<Image>().sprite.name);
                        itemOrder.Add(GameObject.Find("item1").GetComponent<Image>().sprite.name);
                        itemOrder.Add(GameObject.Find("item2").GetComponent<Image>().sprite.name);
                        itemOrder.Add(GameObject.Find("item3").GetComponent<Image>().sprite.name);
                        itemOrder.Add(GameObject.Find("item4").GetComponent<Image>().sprite.name);
                        itemOrder.Add(GameObject.Find("item5").GetComponent<Image>().sprite.name);
                        itemOrder.Add(GameObject.Find("item6").GetComponent<Image>().sprite.name);
                        itemOrder.Add(GameObject.Find("item7").GetComponent<Image>().sprite.name);


                        //https://hub.packtpub.com/arrays-lists-dictionaries-unity-3d-game-development/

                        if (PlayerItems[7].GetComponent<Image>().sprite.name != "empty_item")
                        {

                            PlayerItems = GameObject.FindGameObjectsWithTag("ChoosenItem");

                            for (j = 0; j < 8; j++)
                            {
                                Debug.LogFormat("Item[{0}] = {1}", j, itemOrder[j]);
                            }

                            ItemChoosenOrder = "1: " + itemOrder[0] + " 2: " + itemOrder[1]
                            + " 3: " + itemOrder[2] + " 4: " + itemOrder[3]
                                + " 5: " + itemOrder[4] + " 6: " + itemOrder[5]
                            + " 7: " + itemOrder[6] + " 8: " + itemOrder[7];

                            Debug.Log(ItemChoosenOrder);
                        }

                        else
                        {
                            Debug.Log("Error choosing items");
                        }


                    }


                }


            }


        }

    }

}