嗨,我是 Unity 和 C# 的新手,我正在制作我的第一款游戏。在其中我有一个名为“sss”的脚本对象。它包含硬币、速度、跳跃力等值。它在编辑器中工作正常,但在我构建它之后它就不起作用了。我的意思是它不起作用是玩家在游戏中死后取决于他们的寿命,他们去商店时会得到一定数量的硬币他们会看到这些硬币显示为 UI,他们可以将它们用于速度和跳跃提升等方面。这在编辑器中有效,但在构建中无效。有人知道这是为什么吗?这是我的 Scriptable 对象中的代码
using UnityEngine;
[CreateAssetMenu(fileName = "data",menuName = "sss",order = 1)]
public class sss : ScriptableObject
{
public float coins = 0f;
public float speed = 10f;
public float jump = -9.81f;
public bool set = true;
public int face = 1;
}
这是我用来显示硬币浮动的代码
coinstext.text = sss.coins.ToString();
这是用于购买东西的整个商店经理脚本
using System;
using System.Collections;
using System.Collections.Generic;
using System.Globalization;
using System.Net.Security;
using UnityEngine;
using UnityEngine.UI;
public class storemanager : MonoBehaviour
{
public sss sss;
public Text coinstext;
public Slider sliders;
public Slider sliderj;
public int maxcap = 30;
public int maxcapj = 500;
public void Start()
{
coinstext.text = sss.coins.ToString();
}
public void speedbuy()
{
if (sss.coins >= 5 && sss.speed < maxcap)
{
sss.speed += 1;
sss.buyspeed = true;
sss.coins -= 5;
sliders.value += 1;
coinstext.text = sss.coins.ToString();
}
}
public void jumpbuy()
{
if (sss.coins >= 7 && sss.jump < maxcapj)
{
sss.jump += 10;
sss.buyjump = true;
sss.coins -= 7;
sliderj.value += 10;
coinstext.text = sss.coins.ToString();
}
}
}