【发布时间】:2017-09-14 07:07:40
【问题描述】:
我一直在思考这个问题,我想我可能只是缺少一种基本的编码方法来解决这个问题,但我就是想不出来。 基本上,在我的脚本中,我试图为可以在其中交换的类的“相同变量”设置不同的集合(在游戏中切换炮塔)。如果我要草拟脚本,它会是这样的:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Testturretscript : MonoBehaviour {
int ammo;
int maxAmmo;
float reloadTime;
set1(){
ammo = set1.ammo;
maxAmmo = set1.maxAmmo;
reloadTime = set1.reloadTime;
}
set2()
{
ammo = set2.ammo;
maxAmmo = set2.maxAmmo;
reloadTime = set2.reloadTime;
}
// Use this for initialization
void Start () {
use set1;
}
// Update is called once per frame
void Update () {
if (Input.GetKeyDown(KeyCode.Keypad1) || Input.GetKeyDown(KeyCode.Alpha1)){
use set1;
}
if (Input.GetKeyDown(KeyCode.Keypad2) || Input.GetKeyDown(KeyCode.Alpha2)){
use set2;
}
}
...
}
我知道这可能听起来有点神秘,但我必须有一些简单的方法可以做到这一点。因为当我来回交换时,我确实希望正确存储值而不是覆盖变量的值。
【问题讨论】:
-
只需创建一个
struct来保存这些值(然后有一个数组/List/随便选)