【发布时间】:2017-07-21 13:03:40
【问题描述】:
我正在尝试使用 playerprefs 和下拉 UI 元素更新精灵。 选择白天或夜晚时间将确定在场景重新启动/启动时渲染哪个精灵。但是,当我选择白天或夜晚时,它不起作用。 它不会在加载时更改精灵。我也正确地在检查器中设置了精灵。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class repeatingBackground : MonoBehaviour {
private BoxCollider2D groundCollider;
private float groundHorizontalLength;
private Sprite spriteRenderer;
public Sprite daySprite;
public Sprite nightSprite;
private int bgImg;
void Start () {
bgImg = PlayerPrefs.GetInt ("backgroundImg");
spriteRenderer = GetComponent<Sprite>();
if (bgImg == 1 || bgImg == 0)
spriteRenderer = daySprite;
else if (bgImg == 2)
spriteRenderer = nightSprite;
groundCollider = GetComponent<BoxCollider2D> ();
groundHorizontalLength = groundCollider.size.x;
}
// Update is called once per frame
void Update () {
if (transform.position.x < -groundHorizontalLength) {
RepositionBackground ();
}
}
public void OnValueChanged(Dropdown value)
{
PlayerPrefs.SetInt ("backgroundImg", value.value);
PlayerPrefs.Save ();
}
private void RepositionBackground()
{
Vector2 groundOffset = new Vector2 (groundHorizontalLength * 2f, 0);
transform.position = (Vector2)transform.position + groundOffset;
}
}
【问题讨论】: