【问题标题】:Only assignment, call, increment, decrement, await, Unity3D只有赋值、调用、递增、递减、等待、Unity3D
【发布时间】:2019-08-16 21:45:56
【问题描述】:

我已经开始学习c#,但是这个问题,我似乎无法解决

我尝试过改变一些东西,但我没有足够的知识知道该怎么做。

    public float raiseAtAltitude = 40;
    public float lowerAtAltitude = 40;

    private GearState m_State = GearState.Lowered;
    private Animator m_Animator;
    private Rigidbody m_Rigidbody;
    private AeroplaneController m_Plane;

    // Use this for initialization
    private void Start()
    {
        m_Plane = GetComponent<AeroplaneController>();
        m_Animator = GetComponent<Animator>();
        m_Rigidbody = GetComponent<Rigidbody>();
    }


    // Update is called once per frame
    private void Update()
    {
        if(Input.GetKey(KeyCode.G)){
            raiseAtAltitude;
        }
        // set the parameter on the animator controller to trigger the appropriate animation
        m_Animator.SetInteger("GearState", (int) m_State);
    }
}

Assets\Standard Assets\Vehicles\Aircraft\Scripts\LandingGear.cs(42,5): error CS0201: 只有赋值、调用、递增、递减、等待和新对象表达式可以用作语句

这是唯一的错误。

【问题讨论】:

  • 你想在这里分配什么吗? raiseAtAltitude; 我假设是第 42 行。
  • raiseAtAltitude; 不是声明。那一行只是说40;,这也不是一个声明。您既没有为变量赋值,也没有调用函数,也没有递增或递减变量,awaited 或调用new

标签: c# unity3d


【解决方案1】:

如果我没记错的话,你是想通过按键使物体升高到一个高度?

if(Input.GetKey(KeyCode.G)){
    raiseAtAltitude;
}

所以你在这里的字面意思是如果键 'G' 然后 40; 您必须将某些内容分配给变量或将变量分配给 RigidBody 的 transform.position 之类的内容。 (x, y, z)

if(Input.GetKey(KeyCode.G)){
    //something like this?
    m_Rigidbody.transform.position.y += raiseAtAltitude;
}

【讨论】:

  • 不,我试图让齿轮关闭/播放关闭动画,我使用了所有可能的方法,例如 GearState.Lowered、GearState.Raised。没有修复它:/
  • 好的,所以对于编译错误,raiseAtAltitude 行是问题所在,如果您将其注释掉,项目编译对吗?至于动画问题,我建议您观看一些教程视频,并确保您不会错过任何步骤,并且所有内容都在编辑器中正确设置。例如:youtube.com/watch?v=7PA51WUVRc4
猜你喜欢
  • 2017-02-24
  • 1970-01-01
  • 2015-07-05
  • 2016-06-27
  • 1970-01-01
  • 2023-03-05
  • 2020-11-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多