C# 在变量上升或下降时使对象移动
嗨,我正在尝试制作一个系统,其中一个变量控制一个对象的位置,这样,如果变量上升,那么对象的Y位置将上升,如果变量下降,那么对象的Y位置将下降 我试图从一个单独的脚本控制变量,但是变量的值没有改变 变量脚本: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 () {
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;