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