Юнити ошибка cs0246

I have two scripts, one is located at: Assets / Scriptable Objects / ... while the other one is located at: Assets / Scripts / ... I have the first script encapsulated on a namespace. using

I have two scripts, one is located at:

Assets / Scriptable Objects / …

while the other one is located at:

Assets / Scripts / …

I have the first script encapsulated on a namespace.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using VoidlessNodes.LevelFlowNodes;

namespace VoidlessUtilities
{
[CreateAssetMenu]
public class LevelFlowData : BaseNodeEditorData<BaseLevelNode, LevelFlowEditorAttributes>
{
    private const string MENU_ITEM_PATH = "Create / ScriptableObjects / LevelFlowData";
    private const string NEW_ASSET_PATH = "ScriptableObjects / Level Flow Data";

    [SerializeField] private string _name;
    private RootLevelNode _root;

    /// <summary>Gets and Sets name property.</summary>
    public string name
    {
        get { return _name; }
        set { _name = value; }
    }

    /// <summary>Gets and Sets root property.</summary>
    public RootLevelNode root
    {
        get { return _root; }
        set { _root = value; }
    }

    [MenuItem(MENU_ITEM_PATH)]
    public static void CreateAsset()
    {
        LevelFlowData scriptableObject = ScriptableObject.CreateInstance<LevelFlowData>() as LevelFlowData;
        AssetDatabase.CreateAsset(scriptableObject, AssetDatabase.GenerateUniqueAssetPath(NEW_ASSET_PATH));
    }

    public BaseLevelFlowNode GetLevelFlow()
    {
        BaseLevelFlowNode rootLevelFlow = null;

        if(root != null)
        {
            rootLevelFlow = root.GetNode();
        }
        else
        {
            Debug.LogError("[LevelFlowData] Data has no RootLevelFlowNode saved");
        }

        return rootLevelFlow as RootLevelFlowNode;
    }
}
}

And the other one is using the same namespace, which is a namespace I use for my custom scripts, but the only difference is that LevelFlowData’s location is not under Scripts.

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using VoidlessUtilities;

public class TestLevelController : Singleton<TestLevelController>
{
    [SerializeField] private LevelFlowData _levelFlowData;
    [SerializeField] private List<GameObject> _testViews;

    /// <summary>Gets and Sets levelFlowData property.</summary>
    public LevelFlowData levelFlowData
    {
        get { return _levelFlowData; }
        protected set { _levelFlowData = value; }
    }

    /// <summary>Gets and Sets testViews property.</summary>
    public List<GameObject> testViews
    {
        get { return _testViews; }
        set { _testViews = value; }
    }

#region UnityMethods:
    void OnEnable()
    {
        BaseInteractable.onTriggeredEvent += (int _eventID, bool _triggered)=> { Debug.Log("[TestLevelController] Event Triggered: " + _eventID); };
    }

    void OnDisable()
    {
        BaseInteractable.onTriggeredEvent -= (int _eventID, bool _triggered)=> { Debug.Log("[TestLevelController] Event Triggered: " + _eventID); };
    }

    /// <summary>TestLevelController's' instance initialization.</summary>
    void Awake()
    {

    }

    /// <summary>TestLevelController's starting actions before 1st Update frame.</summary>
    void Start ()
    {

    }

    /// <summary>TestLevelController's tick at each frame.</summary>
    void Update ()
    {

    }
#endregion

#region PublicMethods:
    public void EnableView(int _index)
    {
        testViews.SetAllActive(false);
        testViews[_index].SetActive(true);
    }
#endregion

#region PrivateMethods:

#endregion
}

Do I need to move LevelFlowData to Scripts, and make platform independet compilation (e.g., #if UNITY_EDITOR) encapsulation for UnityEditor namespace usage? Or is there another point I am missing?

This is the specific error log:

Assets/Scripts/Scene Controllers/TestLevelController.cs(10,27): error CS0246: The type or namespace name `LevelFlowData’ could not be found. Are you missing an assembly reference?

Thanks in advance.

Egor12

0 / 0 / 0

Регистрация: 18.01.2021

Сообщений: 20

1

18.01.2021, 14:23. Показов 40666. Ответов 16

Метки unity (Все метки)


Здраствуйте может кто то знает. Я создаю игру на движке unity и у меня ошибка CS0246 можете пожалуйста подсказать как её убрать?

AssetsSpawner.cs(8,12): error CS0246: The type or namespace name ‘Gameobject’ could not be found (are you missing a using directive or an assembly reference?)

вот такая ошибка.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
 
public class Spawner : MonoBehaviour
{
    public Gameobject[] Blocklines;
 
    public float speed;
    public float speedIncrease;
 
    // Update is called once per frame
    private void Update()
    {
        speed += spawner.speedIncrease * Time.deltaTime;
    }
 
    public void SpawnWave()
    {
        int rand = Random.Range(0, Blocklines.Length);
        Instantiate(Blocklines[rand], transform.postition, Quaternion.identity);
 
    }
 
 
 
 
}

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

18.01.2021, 14:23

Ответы с готовыми решениями:

Как убрать ошибку
Начал заниматься по книге Васильева А.Н. Программирование для начинающих на С#, первая программа…

Как убрать ошибку?
Привет всем. Загрузил сайт на opencart на хостинг. все работает. Но если пытаюсь зайти в админку…

Как убрать ошибку?
&quot;функция ord с параметрами указанных типов не найдена&quot;

Программа переводит два заданных числа из…

ошибка CS0246 в проекте как исправить?
При компиляции вылетает ошибка CS0246, как это исправить?

16

109 / 81 / 37

Регистрация: 13.01.2016

Сообщений: 395

18.01.2021, 16:50

2

Строка 8. GameObject. Вторая часть типа тоже с большой буквы



1



0 / 0 / 0

Регистрация: 18.01.2021

Сообщений: 20

18.01.2021, 16:58

 [ТС]

3

Огромное спасибо но теперь ошибка
AssetsSpawner.cs(15,18): error CS0103: The name ‘spawner’ does not exist in the current context



0



74 / 53 / 24

Регистрация: 19.10.2012

Сообщений: 212

18.01.2021, 18:10

4

speed += spawner.speedIncrease * Time.deltaTime; Убери spawner

speed += speedIncrease * Time.deltaTime;

Добавлено через 28 секунд
Используй IDE



1



250 / 186 / 68

Регистрация: 04.03.2019

Сообщений: 1,010

18.01.2021, 18:16

5

Цитата
Сообщение от Egor12
Посмотреть сообщение

spawner.speedIncreas

Spawner с большой буквы.
а еще лучше убрать как пишут выше



1



Egor12

0 / 0 / 0

Регистрация: 18.01.2021

Сообщений: 20

18.01.2021, 21:29

 [ТС]

6

Спасибо большое, но у меня появилась ещё одна ошибка

AssetsDownMover.cs(24,23): error CS1061: ‘Transform’ does not contain a definition for ‘postition’ and no accessible extension method ‘postition’ accepting a first argument of type ‘Transform’ could be found (are you missing a using directive or an assembly reference?)

что то я так понимаю с ‘Transform’ не так.

буду очень благодарен за помощь.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class Spawner : MonoBehaviour
{
    public GameObject[] Blocklines;
 
    public float speed;
    public float speedIncrease;
 
    // Update is called once per frame
    private void Update()
    {
        speed += speedIncrease * Time.deltaTime;
    }
 
    public void SpawnWave()
    {
        int rand = Random.Range(0, Blocklines.Length);
        Instantiate(Blocklines[rand], transform.postition, Quaternion.identity);
 
    }
 
 
 
 
}



0



74 / 53 / 24

Регистрация: 19.10.2012

Сообщений: 212

18.01.2021, 21:40

7

Во первых у тебя с верху написана ошибка. ее в переводчик.
Потом повторюсь используй IDE любой и настрой под Unity

Instantiate(Blocklines[rand], transform.postition, Quaternion.identity);
position

все красное ошибки твоего кода.
А так ты тут поселишься.

Миниатюры

Как убрать ошибку CS0246?
 



0



0 / 0 / 0

Регистрация: 18.01.2021

Сообщений: 20

18.01.2021, 22:02

 [ТС]

8

Спасибо мне 12 только учусь поэтому у меня столько ошибок )

2 первые ошибки я уже исправил. А там где postition его просто удалить ?

Я не настраивал visual studio под unity потому что не знал что это нужно делать, и не знаю как.



0



74 / 53 / 24

Регистрация: 19.10.2012

Сообщений: 212

18.01.2021, 22:26

9

Ну Youtube в помощь. Я тоже начал примерно в этом возрасте. Очень давно.



0



0 / 0 / 0

Регистрация: 18.01.2021

Сообщений: 20

18.01.2021, 22:51

 [ТС]

10

Спасибо понял. Так всё таки postition убрать из скрипта ?



0



74 / 53 / 24

Регистрация: 19.10.2012

Сообщений: 212

18.01.2021, 23:41

11

Лучший ответ Сообщение было отмечено Egor12 как решение

Решение

Цитата
Сообщение от Egor12
Посмотреть сообщение

Так всё таки postition убрать из скрипта ?

написано с ошибкой просто.
Правильно position а не posTition

Добавлено через 4 минуты
Выучи основы c# это не так много. Просто Азы. Потом основы Unity. Это неделя по вечерам. Может ты и не будешь далеко Гуру, но в таких мелочах не ошибешься. А юзать Unity будет интереснее. Мб и поймешь куда поступать. ) Удачи.



0



0 / 0 / 0

Регистрация: 18.01.2021

Сообщений: 20

19.01.2021, 10:59

 [ТС]

12

Хорошо огромное спасибо ))



0



0 / 0 / 0

Регистрация: 18.01.2021

Сообщений: 20

20.01.2021, 14:28

 [ТС]

13

Почему-то speedIncrease работает то есть скорость становиться больше со временем, а Spawner не работает он не спавнит BlockLines.



0



Eli_To4Ka

0 / 0 / 0

Регистрация: 23.11.2021

Сообщений: 1

23.11.2021, 12:37

14

Ночью сидел писал код, по примеру ютубера… у него все работает у меня нет… cs0246 ошибку выбивает.
Может ктото мне тыкнуть пальцем, где мои сонные глаза чегото не увидели?

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
 
public class AchMenu : MonoBehaviour
{
    public int total_money;
    [SerializeField] Button firstAch;
    [SerializeFiled] bool isFirst;
    void Start()
    {
        total_money = PlayerPrefs.GetInt("total_money");
        isFirst = PlayerPrefs.GetInt("isFirst") == 1 ? true : false;
        if (total_money >= 10 && !isFirst)
        {
            firstAch.interactactable = true;
        }
        else
        {
            firstAch.interactactable = false;
        }
    }
 
    public void GetFirst()
    {
        int money = PlayerPrefs.GetInt("money");
        money += 10;
        PlayerPrefs.SetInt("money", money);
        isFirst = true;
        PlayerPrefs.SetInt("isFirst", isFirst ? 1 : 0);
    }
 
    public void ToMenu()
    {
        SceneManager.LoadScene(0);
    }
 
    void Update()
    {
 
    }
}



0



538 / 350 / 196

Регистрация: 18.10.2019

Сообщений: 1,164

23.11.2021, 14:13

15

Eli_To4Ka, interactactable. Правильно — interactable.
Строки 18 и 22.



0



Sovock

0 / 0 / 0

Регистрация: 06.02.2022

Сообщений: 1

06.02.2022, 16:13

16

Делал год из интеренета, всё сделал как на ролике, но появляется ошибка:

(AssetsscriptsMovePlayer.cs(49,20): error CS1061: ‘Rigidbody’ does not contain a definition for ‘AddForse’ and no accessible extension method ‘AddForse’ accepting a first argument of type ‘Rigidbody’ could be found (are you missing a using directive or an assembly reference?)

вот код:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
 
public class MovePlayer : MonoBehaviour
{
    [Header("Скорость передвижения")]
    public float speed = 7f;
 
    [Header("Сила прыжка")]
    public float jumpPower = 200f;
 
    [Header("Земля под ногами???")]
    public bool ground;
 
    public Rigidbody rb;
 
 
 
    private void Update()
    {
        GetInput();
    }
 
    void GetInput()
    {
        if (Input.GetKey(KeyCode.W))
        {
            transform.localPosition += transform.forward * speed * Time.deltaTime;
        }
        if (Input.GetKey(KeyCode.S))
        {
            transform.localPosition += -transform.forward * speed * Time.deltaTime;
        }
        if (Input.GetKey(KeyCode.A))
        {
            transform.localPosition += -transform.right * speed * Time.deltaTime;
        }
        if (Input.GetKey(KeyCode.D))
        {
            transform.localPosition += transform.right * speed * Time.deltaTime;
        }
 
        if(Input.GetKeyDown(KeyCode.Space))
        {
            if(ground == true)
            {
                rb.AddForse(transform.up * jumpPower);
            }
        }
    }
 
    private void OnCollisionEnter(Collision collision)
    {
        if(collision.gameObject.tag == "Ground")
        {
            ground = true;
        }    
    }
 
    private void OnCollisionExit(Collision collision)
    {
        if (collision.gameObject.tag == "Ground")
        {
            ground = false;
        }
    }
}



0



538 / 350 / 196

Регистрация: 18.10.2019

Сообщений: 1,164

06.02.2022, 16:18

17

Sovock, метод правильно называется AddForce



0



Unity3D error CS0246 - howto fix tutorial



Trabla Description:

1. Simple project


2. Script «MyBuildScript.cs» to add custom menu to Unity3d Editor
— compile project for Androdi or iOS

Located in Assets folder

Unity3D error CS0246 - howto fix tutorial 1

3. Source code of  «MyBuildScript.cs» script:

using UnityEngine;

using System.Collections;

using System.Collections.Generic;

using UnityEditor;

class MyBuildScript

{

static string[] SCENES = FindEnabledEditorScenes();

static string APP_NAME = «Demo»;

static string TARGET_DIR = «C:\Users\Public\Documents\Unity Projects\demo-buildScript»;

[MenuItem(«Custom/CI/Build Mac OS X»)]  // Creates menu item in unity editor

public static void PerformMacOSXBuild()

{

string target_dir = APP_NAME + «.app»;

GenericBuild(SCENES, TARGET_DIR + «/» + target_dir, BuildTarget.StandaloneOSXIntel, BuildOptions.None);

}

[MenuItem(«Custom/CI/Build Android»)]   // Creates menu item in unity editor

public static void PerformAndroidBuild()

{

string target_dir = APP_NAME + «.apk»;

GenericBuild(SCENES, TARGET_DIR + «/» + target_dir, BuildTarget.Android, BuildOptions.None);

}

private static string[] FindEnabledEditorScenes()

{

List<string> EditorScenes = new List<string>();

foreach (EditorBuildSettingsScene scene in EditorBuildSettings.scenes)

{

if (!scene.enabled) continue;

EditorScenes.Add(scene.path);

}

return EditorScenes.ToArray();

}

static void GenericBuild(string[] scenes, string target_dir, BuildTarget build_target, BuildOptions build_options)

{

EditorUserBuildSettings.SwitchActiveBuildTarget(build_target);

string res = BuildPipeline.BuildPlayer(scenes, target_dir, build_target, build_options);

if (res.Length > 0)

{

throw new System.Exception(«BuildPlayer failure: » + res);

}

}

}

Unity3D error CS0246 - howto fix tutorial 2

4. Try to run build script from Editor  — menu «Custom» -> «CI» -> «Build Android»

5. Exception:

Assets/MyBuildScript.cs(4,7): error CS0246: The type or namespace name `UnityEditor’ could not be found. Are you missing a using directive or an assembly reference?

Unity3D error CS0246 - howto fix tutorial 3



Solving:


1. Create folder «Editor» in «Assets» folder

Unity3D error CS0246 - howto fix tutorial 4



2. Move script «MyBuildScript.cs» to «Assets» -> «Editor» folder

Unity3D error CS0246 - howto fix tutorial 5

All scripts with using UnityEditor; should be placed in «Assets» -> «Editor» folder

Понравилась статья? Поделить с друзьями:
  • Юнити краш хендлер 64 ошибка
  • Юнити как изменить цвет объекта через код
  • Юнити как изменить разрешение экрана
  • Юнити как изменить размер камеры
  • Юнит мультиварка ошибка е4