我正在研究玩家的动作编码,我想为“道具”等准备预制的动作统计数据。为了便于组织,我制作了一个与移动脚本分开的统计管理脚本,并将移动变量打包在结构中,以便在游戏模式下切换出来。
我可以从统计信息管理脚本导入传出统计信息结构,但我想将该结构分配给移动脚本中它自己的变量,以便于处理。它确实复制了,但我的新结构变量在其所有内部变量上返回0,而不是从原始结构复制值。
Tl;dr Im 尝试将结构从一个脚本复制到另一个脚本,但是当所述结构副本时,副本具有 0 的变量。
统计管理脚本
public struct StatsSet
{
public int JumpCount;
public float JumpPower;
public float MoveSpeed;
public float QuickFallMultiplier;
public float BaseFallMultiplier;
}
//Public variables for experimental movement stats testing
public int ExJumpCount = 1;
public float ExJumpPower = 6.0f;
public float ExMoveSpeed = 4.0f;
public float ExQuickFallMultiplier = 2.0f;
public float ExBaseFallMultiplier = 2.5f;
public int Statpick = 1;
public StatsSet StatsOut;
private StatsSet ExStats;
private StatsSet BaseStats;
// Use this for initialization
void Start () {
BaseStats.JumpCount = 1;
BaseStats.JumpPower = 6.0f;
BaseStats.MoveSpeed = 4.0f;
BaseStats.QuickFallMultiplier = 2.0f;
BaseStats.BaseFallMultiplier = 2.5f;
ExStats.BaseFallMultiplier = ExBaseFallMultiplier;
ExStats.JumpCount = ExJumpCount;
ExStats.JumpPower = ExJumpPower;
ExStats.MoveSpeed = ExMoveSpeed;
ExStats.QuickFallMultiplier = ExQuickFallMultiplier;
Statpick = 1;
}
// Update is called once per frame
void Update () {
if (Statpick == 0)
{
StatsOut = ExStats;
}
else if (Statpick == 1)
{
StatsOut = BaseStats;
}
}
动作脚本
private Rigidbody PlayerRigid;
private int JumpCheck;
private bool IsGrounded = true;
public Collider GroundCollider;
private int HiddenJumpCount;
//Import of player stats data
private PlayerStats PStats;
private PlayerStats.StatsSet PlayerStats;
// Use this for initialization
void Start()
{
PStats = GetComponent<PlayerStats>();
PlayerRigid = GetComponent<Rigidbody>();
PlayerStats = PStats.StatsOut;
JumpCheck = PlayerStats.JumpCount;
Debug.Log("Up and running...");
}
PStats.Out 返回我预期的值,但 PlayerStats 返回看似空的值
慕慕森
相关分类