Unity 在这个链接上有这个示例项目“Roll a Ball”:https://unity3d.com/learn/tutorials/projects/roll-ball-tutorial
我已经能够在我的 Mac 上构建并使其 100% 正常运行。我可以使用键盘上的箭头键来移动球。一切都在 Mac 平台上运行。
但是,当我使用相同的代码在 iPad 上构建和部署此游戏时,我注意到当我用手指尝试移动球时,球根本没有移动。 (唯一的好处是所有的立方体都旋转得很好)
所以,我的问题是我是否需要修改球的 C# 脚本以使其适用于 iPad(尽管该脚本已经适用于 Mac)?
这是球的 C# 脚本:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class PlayerController : MonoBehaviour
{
public float speed;
public Text countText;
public Text winText;
private Rigidbody rb;
private int count;
void Start ()
{
rb = GetComponent<Rigidbody>();
count = 0;
SetCountText ();
winText.text = "";
}
void FixedUpdate ()
{
float moveHorizontal = Input.GetAxis ("Horizontal");
float moveVertical = Input.GetAxis ("Vertical");
Vector3 movement = new Vector3 (moveHorizontal, 0.0f, moveVertical);
rb.AddForce (movement * speed);
}
void OnTriggerEnter(Collider other)
{
if (other.gameObject.CompareTag ( "ick up"))
{
other.gameObject.SetActive (false);
count = count + 1;
SetCountText ();
}
}
void SetCountText ()
{
countText.text = "Count: " + count.ToString ();
if (count >= 12)
{
winText.text = "You Win!";
}
}
}
*有趣的是,我刚刚注意到 INPUT 类型具有方法“GetTouch()”。也许,我可以尝试在 iPad 上使用这种方法?最初,我希望上面 C# 脚本中适用于 Mac 的通用代码也适用于 iPad?也许,我的假设是错误的,我需要用“GetTouch()”为 iPad 编写一组不同的代码?好的,我认为这是可能的解决方案,现在将尝试... *
PS:顺便说一句,截至 2017 年 2 月,我使用的是最新的 Unity(版本 5.5.2f1)和最新的 XCode(8.2.1)。我 iPad 上的 iOS 也是最新的(版本 10.2.1)。
Best Answer-推荐答案 strong>
我从来没有在 Unity 中为 iPad 创建过任何东西,但是根据您提供的描述,我认为问题不在您的脚本中。我建议您检查输入管理器中的所有内容是否正确链接
(编辑->项目设置->输入)
https://docs.unity3d.com/Manual/class-InputManager.html
我认为问题在于游戏没有检测到您在 iPad 上的输入。您可以尝试在 x 轴上给小球添加一个恒定的速度,如果它移动,您可以在 Input Manager 中集中精力。
另外,请查看此链接:
http://wiki.unity3d.com/index.php?title=Basic_iOs_Input_Tutorial
关于c# - Unity 示例项目 "Roll a Ball"在 iPad 上不起作用(球不动)?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/42530177/
|