Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在变量上升或下降时使对象移动_C#_Unity3d - Fatal编程技术网

C# 在变量上升或下降时使对象移动

C# 在变量上升或下降时使对象移动,c#,unity3d,C#,Unity3d,嗨,我正在尝试制作一个系统,其中一个变量控制一个对象的位置,这样,如果变量上升,那么对象的Y位置将上升,如果变量下降,那么对象的Y位置将下降 我试图从一个单独的脚本控制变量,但是变量的值没有改变 变量脚本: public class Money : MonoBehaviour { public static float Flow; public static float FlowPos; // Use this for initialization void Start () {

嗨,我正在尝试制作一个系统,其中一个变量控制一个对象的位置,这样,如果变量上升,那么对象的Y位置将上升,如果变量下降,那么对象的Y位置将下降

我试图从一个单独的脚本控制变量,但是变量的值没有改变

变量脚本:

public class Money : MonoBehaviour {
public static float Flow;
public static float FlowPos;
    // Use this for initialization
    void Start () {
        Flow = 50;

}

// Update is called once per frame
void Update () {
    FlowPos = Flow/100;
    print(Flow);
    transform.position = new Vector3(10.56f,12 + FlowPos,1);
}
试图更改变量的脚本:

using UnityEngine;
using System.Collections;

public class Barista01 : MonoBehaviour {

bool dragging = false;
bool CardActive = true;

void Start(){





}

void Update(){  

    if (transform.position.x > 11.5f && dragging == false){

        GameControllerScript.Active = false;
        this.Destroy(gameObject);
    }
    else if (transform.position.x < 4.5f && dragging == false){

        GameControllerScript.Active = false;
        Worker.Morale += 20;
        Money.Flow -= 15;
        this.Destroy(gameObject);

    }

    if (GameControllerScript.CardCall == 2 && CardActive == true){
        CardActive = false;
        Worker.Morale -= 20;
        transform.position = new Vector3(8f, 6.89f, 9f);

    }

}

void OnMouseDown(){
    {
        dragging = true;

    }
}

void OnMouseUp(){
    {
        dragging = false;

    }
}
使用UnityEngine;
使用系统集合;
公营咖啡师01:单一行为{
布尔拖动=假;
bool-CardActive=true;
void Start(){
}
无效更新(){
if(transform.position.x>11.5f&&dragging==false){
GameControllerScript.Active=false;
这个。销毁(游戏对象);
}
else if(transform.position.x<4.5f&&dragging==false){
GameControllerScript.Active=false;
员工士气+=20;
货币流量-=15;
这个。销毁(游戏对象);
}
如果(GameControllerScript.CardCall==2&&CardActive==true){
CardActive=false;
员工士气-=20;
transform.position=新矢量3(8f,6.89f,9f);
}
}
void OnMouseDown(){
{
拖动=真;
}
}
void OnMouseUp(){
{
拖动=假;
}
}
}


编辑:我将加号、减号和eaquals符号放在正确的位置,但是变量仍然没有改变

您应该更正这两行:

Worker.Morale =+ 20;
Money.Flow =- 15;


两者之间的区别在于=+/=-计算为x=y(或x=-y),它只分配一个新值,而不是递增它。答案是正确的。这正是我建议答案的原因,他总是在if语句中给
士气分配20,给
流量分配-15。是的,我不想抨击你的答案,我只是想补充为什么需要更改的信息,因为你没有。没有抨击,回答时我很匆忙。:)我看到OP编辑了他们的答案来“修复”这些错误,但我想他们还是希望得到不同的答案。。。
Worker.Morale += 20;
Money.Flow -= 15;