Имя "Math" не существует в текущем контексте

У меня есть код ниже,и я пытаюсь округлить PerlinNoise(x, z), поэтому я поставил его равным Yscale и попытался его округлить. вопрос в том, что я получаю ошибку "имя" математика "не существует в текущем контексте" для этой линии. Есть Идеи?

using UnityEngine;
using System.Collections;

public class voxelcreate : MonoBehaviour {
private int origin = 0;
private Vector3 ChunkSize = new Vector3 (32,6,32);
private float Height = 10.0f;
private float NoiseSize = 10.0f;
private float Yscale=0;
private GameObject root;
public float PerlinNoise(float x, float y)
{
    float noise = Mathf.PerlinNoise( x / NoiseSize, y / NoiseSize );
    return noise * Height;

}

// Use this for initialization
void Start () {
    for(int x = 0; x < 33; x++){
        bool isMultiple = x % ChunkSize.x == 0;
        if(isMultiple == true){
        origin = x;
Chunk();}
    }
}

// Update is called once per frame

void Chunk (){
    int ranNumber = Random.Range(8, 80);
    int ranNumber2 = Random.Range(8, 20);
    Height = ranNumber2;
    NoiseSize = ranNumber;
    for(int x = 0; x < ChunkSize.x; x++)
    {
for(int y = 0; y < ChunkSize.y; y++)
{
    for(int z = 0; z < ChunkSize.z; z++)
    {
GameObject box = GameObject.CreatePrimitive(PrimitiveType.Cube);
                int Yscale = (int)Math.Round((PerlinNoise( x, z)), 0);
           box.transform.position = new Vector3( origin+x , y+Yscale, z);
}}}}}

3 ответов


добавить

using System;

в верхней части файла.

или использовать System.Math вместо Math.


Это правда, что вы могли бы добавить using System. Однако, единства Mathf

почему вы предпочитаете использовать встроенный Mathf?

System.Math использует двойников. UnityEngine.Mathf использует поплавки. Поскольку большинство Unity использует поплавки, лучше использовать Mathf, Так что вам не придется постоянно конвертировать float и Double и обратно.


In ASP.NET ядро, ты должен получить систему.Во время выполнения.Пакета расширения первый, возможно, через Диспетчер пакетов NuGet в Visual Studio или с помощью командной строки.

подробности о пакете можно найти здесь.

наконец, вам нужно дать:

using System

и затем вы можете использовать методы этого класса:

            using System;
            namespace Demo.Helpers
            {
                public class MathDemo
                {
                    public int GetAbsoluteValue()
                    {
                        var negativeValue = -123;
                        return Math.Abs(negativeValue);
                    }
                }
            }