ScrollView性能是真正的阻力(得到它了吗?),尤其是在移动平台上。我经常发现自己的速度低于15 fps,这给用户带来震撼和不堪重负的体验。经过大量的研究和测试,我编写了一个清单以大大提高性能。现在,我至少获得了30 fps,并且大部分的CPU时间都分配给WaitForTargetFPS。
我希望这对在此方面也遇到麻烦的任何人有所帮助。优化解决方案很难获得。在这里随意使用和修改我的任何代码。
optimization frame-rate scrollrect scrollview unity-game-engine
大家!我正在制作一个可滚动的列表,并希望在到达底部时向其简单添加更多元素。基本上是一个无限列表,其中内容按需添加。我试图获取scrollrect的verticalNormalizedPosition,当它达到接近零的某个值时,我会调用一种方法,将更多项目添加到列表中,但是没有用。我怎样才能做到这一点?(此外,我在这里找不到类似的帖子)。感谢您的提前关注。
我有一个让我发疯的问题。我创建了一个scroll rect统一的 ,Input Field如下图所示。
我的问题是:我无法滚动!!!每次我尝试时,键盘都会打开。只要我点击Input field's之间的红色空间,它就可以滚动。
我认为问题是因为键盘出现在OnPointerDown而不是OnPointerUpor 上OnPointerClick。我尝试向和 添加EventTrigger组件InputField并为其添加操作OnPointerDown,OnPointerUp但我没有成功更改键盘行为。
有什么帮助吗?有任何想法吗?请!非常感谢!
我想检测向上或向下滚动。应该像下面的 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) 我有一个uiscrollview,里面有很多按钮.我需要做的是在屏幕中央显示其中一个按钮.
当我使用scrollRectToVisible(传递按钮框架)时,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
scrollrect ×7
c# ×3
scrollview ×2
eventtrigger ×1
frame-rate ×1
input-field ×1
iphone ×1
keyboard ×1
optimization ×1
scroll ×1
uiscrollview ×1
unity3d-gui ×1