I'm having a problem implementing the button to swipe it to the next page I am using NGUI
Here's my script
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()");
}
}
it says
NullReferenceException: A null value was found where an object instance was required.
Could someone help me
Take a look at this part of your code:
void Start()
{
sp = sv.GetComponent<SpringPanel>();
if (sp == null) sv.AddComponent<SpringPanel>();
}
If GetComponent
returns null
because SpringPanel
is not attached to the sv
GameObject, the SpringPanel
component will be added to the sv
GameObject. The problem is that sp
will still be null
. You should also assign the value returned by AddComponent
to sp
.
Replace
if (sp == null)
sv.AddComponent<SpringPanel>();
with
if (sp == null)
sp = sv.AddComponent<SpringPanel>();