相关疑难解决方法(0)

如何使隐形透明按钮工作?

看看Unity论坛和问答网站中的一些答案,如何制作隐形按钮的答案不起作用,因为删除与按钮相关的图像使其无效.

你如何绕过这个并保持隐形属性,同时允许按钮实际工作?

c# button transparent unity-game-engine unity3d-ui

9
推荐指数
2
解决办法
3858
查看次数

如何检测游戏对象上的触摸

我正在使用Unity for iOS设备开发游戏.我已经实现了以下触摸代码:

void Update () {
    ApplyForce ();
}

void ApplyForce() {

    if (Input.touchCount > 0 && Input.GetTouch (0).phase == TouchPhase.Began) {
        Debug.Log("Touch Occured");     
    }
}
Run Code Online (Sandbox Code Playgroud)

我把这个脚本拖到我的游戏对象上,这是一个球体.但无论我触摸哪里,都会显示日志消息.我只想在用户触摸对象时检测触摸.

touch unity-game-engine ios unityscript

4
推荐指数
1
解决办法
2万
查看次数

Unity3D中OnPointerDown与OnBeginDrag的恐怖

我担心单指移动代码OnPointerDown与之间的区别OnBeginDrag.

(在使用物理raycaster的最新Unity范例中:最后,Unity将正确地忽略UI层上的触摸.

所以从2015年开始你必须做的是:

  1. 忘记垃圾传统InputTouches系统废话甚至Unity承认是完全没有意义的废话 - 因为他们不工作

  2. 添加一个空的游戏对象,通常是BoxCollider2D,可能比屏幕大.使图层"绘制"(物理设置,它与任何东西互动)

  3. 只需添加到相机,2D或3D物理raycaster.事件掩盖你的"绘图"图层.

在此输入图像描述

做一个像下面这样的脚本并把它放在"画画"上.

(提示 - 不要忘记简单地添加一个EventSystem场景.奇怪的是,Unity在某些情况下不会自动为你做这件事,但Unity会在其他情况下自动为你做这件事,所以如果你忘记了它会很烦人!)

但这是问题所在.

在使用OnPointerDownvs OnBeginDrag(和匹配的结束调用)之间必须有一些细微的差别.(您可以在以下代码示例中交换操作.)

Unity自然没有提供任何指导; 下面的代码精美地拒绝了流浪抓取并且完美地忽略了你的UI层(感谢Unity!最后!)但是我对这两种方法之间的区别(开始拖动V开始触摸)完全神秘化了,我无论如何都找不到逻辑区别在单元测试中两者之间.

答案是什么?

/*

general movement of something by a finger.

*/

using UnityEngine;
using System.Collections;
using UnityEngine.EventSystems;

public class FingerMove:MonoBehaviour,
      IPointerDownHandler,
      IBeginDragHandler,
      IDragHandler,
      IPointerUpHandler,
      IEndDragHandler
  {
  public Transform moveThis;

  private Camera theCam;
  private FourLimits thingLimits;

  private Vector3 prevPointWorldSpace;
  private Vector3 thisPointWorldSpace;
  private Vector3 realWorldTravel;

  public void Awake() …
Run Code Online (Sandbox Code Playgroud)

touch unity-game-engine unity3d-ui

4
推荐指数
1
解决办法
1万
查看次数

统一检测游戏对象上的轻击

我目前正在做足球比赛。

在这个迷你游戏中,当玩家触摸球时,它会增加力量,并且目标是获得更高的得分。

所以我写道:

 void Update()
{
    if(Input.touchCount == 1 && Input.GetTouch(0).phase== TouchPhase.Began)
      {
       AddForce, and playsound ect...
      }

}
Run Code Online (Sandbox Code Playgroud)

这样,当我触摸屏幕上的任意位置时,它会增加力量,但是当我触摸我的游戏对象(球)时,我只想增加力量。

我怎样才能做到这一点?

谢谢!:)

c# android detect touch unity-game-engine

3
推荐指数
2
解决办法
3万
查看次数