菜鸟教程小白 发表于 2022-12-13 00:02:47

c# - Unity 示例项目 "Roll a Ball"在 iPad 上不起作用(球不动)?


                                            <p><p>Unity 在这个链接上有这个示例项目“Roll a Ball”:<a href="https://unity3d.com/learn/tutorials/projects/roll-ball-tutorial" rel="noreferrer noopener nofollow">https://unity3d.com/learn/tutorials/projects/roll-ball-tutorial</a> </p>

<p>我已经能够在我的 Mac 上构建并使其 100% 正常运行。我可以使用键盘上的箭头键来移动球。一切都在 Mac 平台上运行。</p>

<p>但是,当我使用相同的代码在 iPad 上构建和部署此游戏时,我注意到当我用手指尝试移动球时,球根本没有移动。 (唯一的好处是所有的立方体都旋转得很好)</p>

<p>所以,我的问题是我是否需要修改球的 C# 脚本以使其适用于 iPad(尽管该脚本已经适用于 Mac)?</p>

<p>这是球的 C# 脚本:</p>

<pre><code>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&lt;Rigidbody&gt;();
      count = 0;
      SetCountText ();
      winText.text = &#34;&#34;;
    }

    void FixedUpdate ()
    {
      float moveHorizontal = Input.GetAxis (&#34;Horizontal&#34;);
      float moveVertical = Input.GetAxis (&#34;Vertical&#34;);

      Vector3 movement = new Vector3 (moveHorizontal, 0.0f, moveVertical);

      rb.AddForce (movement * speed);
    }

    void OnTriggerEnter(Collider other)
    {
      if (other.gameObject.CompareTag ( &#34;Pick up&#34;))
      {
            other.gameObject.SetActive (false);
            count = count + 1;
            SetCountText ();
      }
    }

    void SetCountText ()
    {
      countText.text = &#34;Count: &#34; + count.ToString ();
      if (count &gt;= 12)
      {
            winText.text = &#34;You Win!&#34;;
      }
    }
}
</code></pre>

<p><strong>*有趣的是,我刚刚注意到 INPUT 类型具有方法“GetTouch()”。也许,我可以尝试在 iPad 上使用这种方法?最初,我希望上面 C# 脚本中适用于 Mac 的通用代码也适用于 iPad?也许,我的假设是错误的,我需要用“GetTouch()”为 iPad 编写一组不同的代码?好的,我认为这是可能的解决方案,现在将尝试... *</strong></p>

<p>PS:顺便说一句,截至 2017 年 2 月,我使用的是最新的 Unity(版本 5.5.2f1)和最新的 XCode(8.2.1)。我 iPad 上的 iOS 也是最新的(版本 10.2.1)。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我从来没有在 Unity 中为 iPad 创建过任何东西,但是根据您提供的描述,我认为问题不在您的脚本中。我建议您检查输入管理器中的所有内容是否正确链接
(编辑->项目设置->输入)</p>

<p> <a href="https://docs.unity3d.com/Manual/class-InputManager.html" rel="noreferrer noopener nofollow">https://docs.unity3d.com/Manual/class-InputManager.html</a> </p>

<p>我认为问题在于游戏没有检测到您在 iPad 上的输入。您可以尝试在 x 轴上给小球添加一个恒定的速度,如果它移动,您可以在 Input Manager 中集中精力。</p>

<p>另外,请查看此链接:
<a href="http://wiki.unity3d.com/index.php?title=Basic_iOs_Input_Tutorial" rel="noreferrer noopener nofollow">http://wiki.unity3d.com/index.php?title=Basic_iOs_Input_Tutorial</a> </p></p>
                                   
                                                <p style="font-size: 20px;">关于c# - Unity 示例项目&#34;Roll a Ball&#34;在 iPad 上不起作用(球不动)?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/42530177/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/42530177/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: c# - Unity 示例项目 &#34;Roll a Ball&#34;在 iPad 上不起作用(球不动)?