Unity在此链接上有一个示例项目“滚动球”: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 ( "Pick 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?最初,我希望上面适用于Mac的C#脚本中的通用代码也适用于iPad?也许,我的假设是错误的,我需要用iPad的“GetTouch()”编写一组不同的代码?好的,我认为这是可能的解决方案,现在就试试...... *
PS:BTW,我使用最新的Unity(版本5.5.2f1)和最新的XCode(8.2.1)截至2017年2月。我的iPad上的iOS也是最新版本(版本10.2.1)。
答案 0 :(得分:1)
我从未在Unity中为iPad创建任何内容,但是根据您提供的说明,我认为问题不在您的脚本中。我建议您改为检查输入管理器中是否所有内容都已正确链接 (编辑 - &gt;项目设置 - &gt;输入)
https://docs.unity3d.com/Manual/class-InputManager.html
我认为问题是游戏没有检测到你的iPad输入。您可以尝试在x轴上添加恒定速度到球,如果它移动,您可以将精力集中在输入管理器上。
此外,请检查此链接: http://wiki.unity3d.com/index.php?title=Basic_iOs_Input_Tutorial
答案 1 :(得分:1)
You have to change the input settings. I don't know exactly where to find them, but then you can change the inputs "horizontal" and "vertical". you should take a look at this more, because you can also add inputs, which is very useful if you want to have all power over the controls of you game.
Oh found it just look at the previous answer.