猿问

大括号在 C# Unity 中无法正常工作

我正在制作一个统一游戏,然后我脚本中的花括号变得愚蠢。他们都搞砸了,我不知道我做错了什么。这是我的脚本: ps:我正在使用 visual studio


using System.Collections;

using System.Collections.Generic;

using UnityEngine;


public class MoveSript : MonoBehaviour {

    public GameObject myObject;

    // Use this for initialization

    private Vector3 direction = new Vector3(0, 0, 0);

    // Update is called once per frame

    private float speed = 40f;

    void Start() { // error here? --> "} expected"


        private Camera cam = Camera.main;

        private float height = 2f * cam.orthographicSize;

        private float width = height * cam.aspect;

    } // i close it here, but it closes the mono beh. class instead?


    void Update () {

        int y = 0;

        int x = 0;

        if (Input.GetKey("up"))

        {

            y = 1;

        }

        if (Input.GetKey("down"))

        {

            y = -1;

        }

        if (Input.GetKey("right"))

        {

            x = 1;

        }

        if (Input.GetKey("left"))

        {

            x = -1;

        }

        direction = new Vector3(x, y, 0);

        myObject.transform.position += direction.normalized*speed*Time.deltaTime;

    }

}

我究竟做错了什么?感谢您的提前!


斯蒂芬大帝
浏览 107回答 1
1回答

慕桂英3389331

您不能在方法内部定义的局部变量中定义可访问性。它应该是private void Start() {    var cam = Camera.main;    var height = 2f * cam.orthographicSize;    var width = height * cam.aspect;    // Makes only sense if you now use the width    // and/or other values for something}或者在类级别定义它们(例如,稍后也可以在其他方法中访问它们),例如private Camera cam;private float height;private float width;private void Start() {    cam = Camera.main;    height = 2f * cam.orthographicSize;    width = height * cam.aspect;}
随时随地看视频慕课网APP
我要回答