使用 Button 的 ScrollView (NGUI C# UNITY)
ScrollView using Button (NGUI C# UNITY)
我在使用 NGUI 实现滑动到下一页的按钮时遇到问题
这是我的脚本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NGUI_PageNavigation : MonoBehaviour {
public GameObject sv;
public SpringPanel sp = null;
int xSpring = 1278;
// Use this for initialization
void Start()
{
sp = sv.GetComponent<SpringPanel>();
if (sp == null) sv.AddComponent<SpringPanel>();
}
private void OnStoppedMoving()
{
int pagewidth = 320;
int pageposition = (int)sp.target.x;
int page = System.Math.Abs(pageposition / pagewidth) + 1;
print("page " + (page));
}
public void LeftArrow()
{
sp.target.x = 1278;
sp.target.y = 0;
sp.target.z = 0;
sp.target = new Vector3(sp.target.x, sp.target.y, sp.target.z);
sp.enabled = true;
//Debug.Log("I've been clicked - Left Arrow()");
}
public void RightArrow()
{
sp.target.x = -1278;
sp.target.y = 0;
sp.target.z = 0;
sp.target = new Vector3(sp.target.x,sp.target.y,sp.target.z);
sp.enabled = true;
//Debug.Log("I've been cliked - Right Arrow()");
}
}
它说
NullReferenceException: A null value was found where an object instance was required.
有人可以帮我吗
看看你的这部分代码:
void Start()
{
sp = sv.GetComponent<SpringPanel>();
if (sp == null) sv.AddComponent<SpringPanel>();
}
如果GetComponent
returns null
因为SpringPanel
没有附加到sv
游戏对象,SpringPanel
组件将被添加到sv
游戏对象。问题是 sp
仍然是 null
。您还应该将 AddComponent
返回的值分配给 sp
.
替换
if (sp == null)
sv.AddComponent<SpringPanel>();
与
if (sp == null)
sp = sv.AddComponent<SpringPanel>();
我在使用 NGUI 实现滑动到下一页的按钮时遇到问题
这是我的脚本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NGUI_PageNavigation : MonoBehaviour {
public GameObject sv;
public SpringPanel sp = null;
int xSpring = 1278;
// Use this for initialization
void Start()
{
sp = sv.GetComponent<SpringPanel>();
if (sp == null) sv.AddComponent<SpringPanel>();
}
private void OnStoppedMoving()
{
int pagewidth = 320;
int pageposition = (int)sp.target.x;
int page = System.Math.Abs(pageposition / pagewidth) + 1;
print("page " + (page));
}
public void LeftArrow()
{
sp.target.x = 1278;
sp.target.y = 0;
sp.target.z = 0;
sp.target = new Vector3(sp.target.x, sp.target.y, sp.target.z);
sp.enabled = true;
//Debug.Log("I've been clicked - Left Arrow()");
}
public void RightArrow()
{
sp.target.x = -1278;
sp.target.y = 0;
sp.target.z = 0;
sp.target = new Vector3(sp.target.x,sp.target.y,sp.target.z);
sp.enabled = true;
//Debug.Log("I've been cliked - Right Arrow()");
}
}
它说
NullReferenceException: A null value was found where an object instance was required.
有人可以帮我吗
看看你的这部分代码:
void Start()
{
sp = sv.GetComponent<SpringPanel>();
if (sp == null) sv.AddComponent<SpringPanel>();
}
如果GetComponent
returns null
因为SpringPanel
没有附加到sv
游戏对象,SpringPanel
组件将被添加到sv
游戏对象。问题是 sp
仍然是 null
。您还应该将 AddComponent
返回的值分配给 sp
.
替换
if (sp == null)
sv.AddComponent<SpringPanel>();
与
if (sp == null)
sp = sv.AddComponent<SpringPanel>();