标签: scrollrect

我从Unity中学到的知识ScrollRect / ScrollView优化/性能

ScrollView性能是真正的阻力(得到它了吗?),尤其是在移动平台上。我经常发现自己的速度低于15 fps,这给用户带来震撼和不堪重负的体验。经过大量的研究和测试,我编写了一个清单以大大提高性能。现在,我至少获得了30 fps,并且大部分的CPU时间都分配给WaitForTargetFPS

我希望这对在此方面也遇到麻烦的任何人有所帮助。优化解决方案很难获得。在这里随意使用和修改我的任何代码。

optimization frame-rate scrollrect scrollview unity-game-engine

5
推荐指数
1
解决办法
4235
查看次数

如何使Unity滚动矩形不溢出?

我有一个滚动矩形,其中有输入字段,我希望用户只能看到其中当前的内容。现在它已经满溢了,里面的所有东西都从它下面流出来了。我希望这样这些底部字段在用户向下滚动之前不会显示,视图中唯一的内容应该是当前的内容在此输入图像描述

user-interface scrollrect unity-game-engine unity3d-gui

3
推荐指数
1
解决办法
2519
查看次数

如何检测scrollrect是否接近其底部?

大家!我正在制作一个可滚动的列表,并希望在到达底部时向其简单添加更多元素。基本上是一个无限列表,其中内容按需添加。我试图获取scrollrect的verticalNormalizedPosition,当它达到接近零的某个值时,我会调用一种方法,将更多项目添加到列表中,但是没有用。我怎样才能做到这一点?(此外,我在这里找不到类似的帖子)。感谢您的提前关注。

c# scroll scrollrect unity-game-engine

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

无法使用输入字段 Unity 在 Scroll rect 中滚动

我有一个让我发疯的问题。我创建了一个scroll rect统一的 ,Input Field如下图所示。

在此处输入图片说明

我的问题是:我无法滚动!!!每次我尝试时,键盘都会打开。只要我点击Input field's之间的红色空间,它就可以滚动。

我认为问题是因为键盘出现在OnPointerDown而不是OnPointerUpor 上OnPointerClick。我尝试向和 添加EventTrigger组件InputField并为其添加操作OnPointerDownOnPointerUp但我没有成功更改键盘行为。

有什么帮助吗?有任何想法吗?请!非常感谢!

c# keyboard scrollrect unity-game-engine input-field

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

如何检测Unity3d面板中的向上或向下滚动?

我想检测向上或向下滚动。应该像下面的 Windows 窗体一样。

private void dgv_Scroll(object sender, ScrollEventArgs e)
    {
        if (e.OldValue > e.NewValue)
        {
            // here up
        }
        else
        {
            // here down
        }
    }
Run Code Online (Sandbox Code Playgroud)

如何检测 Unity3d 面板中的向上或向下滚动?

public void OnScrollValueChanged(float value)
{
        if (?)
        {
            // here up
        }
        else
        {
            // here down
        }
}
Run Code Online (Sandbox Code Playgroud)

c# user-interface scrollrect unity-game-engine

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

UIScrollView - scrollRectToVisible - 在屏幕中央显示一个按钮?

我有一个uiscrollview,里面有很多按钮.我需要做的是在屏幕中央显示其中一个按钮.

当我使用scrollRectToVisible(传递按钮框架)时,scrollview确实显示了按钮 -​​ 但有时在左上角,有时在右下角 - 显然取决于按钮何时到达滚动视图的可见区域.

但是 - 正如提到的那样 - 我需要按钮出现在屏幕的中央.

有关如何实现这一目标的任何提示?

谢谢你的帮助!

iphone scrollrect uiscrollview

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

在Unity3D中拖放ScrollRect(ScrollView)

我想在滚动视图的内容上实现拖放。

问题是,当您尝试在滚动视图中拖动项目时,无法滚动视图。

首先,我尝试通过IDragHandler,IBeginDragHandler,IEndDragHandle和IDropHandler接口实现拖放。乍一看,它工作得很好,但问题是您无法滚动ScrollRect。

我认为问题是由于重载造成的,当我使用事件触发器与拖动一样像rect rect时,父触发器无法正常工作。

因此,在那之后,我自己思考了一下,并通过IPointerDown,IPointerUp接口和在ScrollRect中保留可拖动UI的特定时间来实现它,如果您没有在特定时间保持它,则滚动工作会很好。

但是问题是通过启用在保持时间结束时在OnDrag,OnBeginDrag和OnEndDrag函数之前编写的DragHandler脚本不起作用。

首先我想知道有什么方法可以调用这些函数吗?

其次,有什么方法可以在不使用拖动界面的情况下实现拖放UI?

DragHandler:

using System;
using UnityEngine;
using UnityEngine.EventSystems;

public class DragHandler : MonoBehaviour, IDragHandler, IBeginDragHandler, IEndDragHandler
{
    public static GameObject itemBeingDragged;

    private Vector3 startPos;

    private Transform startParent;

    DragHandler dragHandler;

    public void Awake()
    {
        dragHandler = GetComponent<DragHandler>();
    }

    public void OnBeginDrag(PointerEventData eventData)
    {
        Debug.Log("Begin");
        itemBeingDragged = gameObject;
        startPos = transform.position;
        startParent = transform.parent;
    }

    public void OnDrag(PointerEventData eventData)
    {
        Debug.Log("Drag");
        transform.position = Input.mousePosition;
    }

    public void OnEndDrag(PointerEventData eventData)
    {
        Debug.Log("End");
        itemBeingDragged = null; …
Run Code Online (Sandbox Code Playgroud)

drag-and-drop eventtrigger scrollrect scrollview unity-game-engine

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