ScrollView с использованием кнопки (NGUI С# 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: нулевое значение было найдено там, где требовался экземпляр объекта.

Может ли кто-нибудь помочь мне


person Ginxxx    schedule 26.06.2018    source источник


Ответы (1)


Взгляните на эту часть вашего кода:

void Start()
{
    sp = sv.GetComponent<SpringPanel>();
    if (sp == null) sv.AddComponent<SpringPanel>();
}

Если GetComponent возвращает null, потому что SpringPanel не присоединен к sv GameObject, компонент SpringPanel будет добавлен к sv GameObject. Проблема в том, что sp все равно будет null. Вы также должны присвоить значение, возвращаемое AddComponent, для sp.

Заменять

if (sp == null) 
    sv.AddComponent<SpringPanel>();

с

if (sp == null) 
    sp = sv.AddComponent<SpringPanel>();
person Programmer    schedule 26.06.2018
comment
Спасибо . Это было так глупо с моей стороны. мне очень жаль - person Ginxxx; 26.06.2018
comment
Не тупой. Мы все учимся! Без проблем. Вы можете принять, когда вы можете - person Programmer; 26.06.2018