如何在移动屏幕上按下按钮时发生动画?
Posted
技术标签:
【中文标题】如何在移动屏幕上按下按钮时发生动画?【英文标题】:How can I make the animation of a button happen when pressed on the mobile screen? 【发布时间】:2021-12-22 20:38:50 【问题描述】:如果我一开始的英语不好,我很抱歉。
The button 这是我想要在按下时运行动画的按钮。
Animations
Sprites我想在按下按钮时在这两种状态之间切换
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Animations;
public class Button : MonoBehaviour
private Animator animator;
public void SetTrigger(string Pressed)
Collider2D col;
// Start is called before the first frame update
void Start()
animator = GetComponent<Animator>();
// Update is called once per frame
void Update()
animator.SetFloat("Position", 0);
if (Input.touchCount > 0)
Touch touch = Input.GetTouch(0);
Vector2 touchPosition = Camera.main.ScreenToWorldPoint(touch.position);
if (touch.phase == TouchPhase.Began)
Collider2D touchedCollider = Physics2D.OverlapPoint(touchPosition);
if (col == touchedCollider)
animator.SetFloat("Position", 1);
这是我上次尝试后代码的样子,它可能没有意义,因为我在测试时一直在混合。我已经尝试过使用浮点数、布尔值和触发器。使用布尔它对我来说已经工作了一半,如果我触摸按钮它没有下沉但是如果从统一我按下按钮手动将布尔值更改为true,并且在从移动屏幕触摸后它识别出触摸并将按钮返回到原来的位置。在所有情况下,触摸控制都不好用,但我已经修改了触摸控制代码,我会说它很好。
对不起,如果没有很好理解,我是统一和编程的新手,而且英语不是我的主要语言
【问题讨论】:
【参考方案1】:您确定 Button 还没有实现您想要实现的目标吗?检查按钮检查器中“转换”下的可用选项。你可以在 Color Tint、Sprite Swap 或 Animation 之间进行选择,我想它可以处理大多数情况,而且我从未见过有人以自定义方式实现动画按钮。
【讨论】:
谢谢,现在我离我想要的更近了,但唯一让我失望的是,当我用统一的鼠标或手机触摸按钮时,按钮不起作用。这已经发生在我尝试做的其他事情中,但我不知道如何解决它。我必须添加画布或事件系统吗?该按钮已激活可交互的按钮,并且该对象有一个带触发器的对撞机,我不知道是否有必要 你需要在某处有 EventSystem 组件,我想你也需要 InputModule,我不确定是否在新项目的默认场景中检查 EventsSystem,应该有一个,或者至少自动添加当您开始创建 UI 时(只需创建 Image 或按钮,以便显示 UI 结构)。另一个选项是按钮在其 Image 组件上没有 raycastTarget = true,或者它在 CanvasGroup 中将其覆盖为 raycastTarget = false,它也可能与其他具有 raycastTarget = true 的 Image 重叠,消耗输入事件。这有很多可能的原因。 非常感谢,我成功了。我认为问题在于我需要一个 EventSystem 并且您必须使用图像而不是我使用的精灵渲染器。以上是关于如何在移动屏幕上按下按钮时发生动画?的主要内容,如果未能解决你的问题,请参考以下文章
在文本框上按下 Go 按钮时发生页面重定向(jquery/cordova)
在 Kotlin 上按下按钮时如何停止录制 AudioRecord