Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/47: Рейтинг темы: голосов - 47, средняя оценка - 4.87
1 / 1 / 0
Регистрация: 10.03.2018
Сообщений: 41
1

В чем ошибка скрипта? Компилятор юнити выдаёт ошибку!

19.03.2018, 22:20. Показов 9847. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вот скрипт я создаю 3д игру на c#
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
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class Farm_Action : MonoBehaviour {
        
    void Start () { 
     bool IsPlanted = false;
        int Pshen = 0;
    }
 
    void Update () {
        
    }
 
    void OnCollisionStay2D(Collision2D coll) {
        if (coll.gameObject.tag == "Farm" ) {
            if (Input.GetKeyDown(KeyCode.E)) {
                Instantiate(Pshenitsa, Player.transform.position, Player.transform.rotation);
            }
        }
        if (coll.gameObject.tag == "Pshenitsa") {
            if (Input.GetKeyDown(KeyCode.E)) {
                if(IsPlanted = true){
                Destroy(Pshenitsa);
                Pshen++;
                }
            }
        }
    }
 
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.03.2018, 22:20
Ответы с готовыми решениями:

Компилятор выдаёт ошибку, в чем дело??
Задание: 1. Определить иерархию классов (в соответствии с вариантом). Базовый класс должен...

Компилятор выдаёт ошибку
Я новичок в C++ и не могу понять в чём ошибка написал вот такой код: #include <iostream>...

Компилятор выдаёт ошибку.
Program z1; var n:integer; begin Writeln('Архитектор Исаакиевского собора: ...

Компилятор выдаёт ошибку C2760
Добрый день. Не могу понять, почему компилятор выдаёт ошибку. Вроде всё правильно написано…...

10
368 / 283 / 97
Регистрация: 07.05.2017
Сообщений: 2,000
19.03.2018, 22:34 2
не видно какая ошибка
скорее всего из за OnCollisionStay2D, потому что он 2D. используй просто OnCollisionStay() ,у тебя же 3d игра.
скопируй с консоли текст и покажи
0
1 / 1 / 0
Регистрация: 10.03.2018
Сообщений: 41
19.03.2018, 23:11  [ТС] 3
Вот все ошибки
Кликните здесь для просмотра всего текста
Assets/Scripts/Farm_Action.cs(17,7): error CS0103: The name `coll' does not exist in the current context

Assets/Scripts/Farm_Action.cs(19,17): error CS0103: The name `Pshenitsa' does not exist in the current context

Assets/Scripts/Farm_Action.cs(19,27): error CS0103: The name `Player' does not exist in the current context

Assets/Scripts/Farm_Action.cs(19,5): error CS0311: The type `<error>' cannot be used as type parameter `T' in the generic type or method `UnityEngine.Object.Instantiate<T>(T, UnityEngine.Vector3, UnityEngine.Quaternion)'. There is no implicit reference conversion from `<error>' to `UnityEngine.Object'

Assets/Scripts/Farm_Action.cs(22,7): error CS0103: The name `coll' does not exist in the current context

Assets/Scripts/Farm_Action.cs(24,8): error CS0103: The name `IsPlanted' does not exist in the current context

Assets/Scripts/Farm_Action.cs(25,13): error CS0103: The name `Pshenitsa' does not exist in the current context

Assets/Scripts/Farm_Action.cs(26,5): error CS0103: The name `Pshen' does not exist in the current context


Добавлено через 3 минуты
Gammister, Вот все ошибки
Кликните здесь для просмотра всего текста
Assets/Scripts/Farm_Action.cs(17,7): error CS0103: The name `coll' does not exist in the current context

Assets/Scripts/Farm_Action.cs(19,17): error CS0103: The name `Pshenitsa' does not exist in the current context

Assets/Scripts/Farm_Action.cs(19,27): error CS0103: The name `Player' does not exist in the current context

Assets/Scripts/Farm_Action.cs(19,5): error CS0311: The type `<error>' cannot be used as type parameter `T' in the generic type or method `UnityEngine.Object.Instantiate<T>(T, UnityEngine.Vector3, UnityEngine.Quaternion)'. There is no implicit reference conversion from `<error>' to `UnityEngine.Object'

Assets/Scripts/Farm_Action.cs(22,7): error CS0103: The name `coll' does not exist in the current context

Assets/Scripts/Farm_Action.cs(24,8): error CS0103: The name `IsPlanted' does not exist in the current context

Assets/Scripts/Farm_Action.cs(25,13): error CS0103: The name `Pshenitsa' does not exist in the current context

Assets/Scripts/Farm_Action.cs(26,5): error CS0103: The name `Pshen' does not exist in the current context


Добавлено через 7 минут
Gammister, Вот я переделал скрипт исправил пару ошибок но всё равно несколько осталось
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
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class Farm_Action : MonoBehaviour {
        
    public bool IsPlanted = false;
    public int Pshen = 0;
 
    public void Start () { 
    }
 
    void Update () {
        
    }
 
    void OnCollisionStay() {
        if (Collision.gameObject.tag == "Farm" ) {
            if (Input.GetKeyDown(KeyCode.E)) {
                Instantiate("Pshenitsa",Player.transform.position);
            }
        }
        if (coll.gameObject.tag == "Pshenitsa") {
            if (Input.GetKeyDown(KeyCode.E)) {
                if(IsPlanted = true){
                Destroy("Pshenitsa");
                    Pshen++;
                }
            }
        }
    }
 
}
0
368 / 283 / 97
Регистрация: 07.05.2017
Сообщений: 2,000
19.03.2018, 23:25 4
Лучший ответ Сообщение было отмечено Maxim Pintea как решение

Решение

ты не объявил переменные в скрипте. говорит что не существует имен в данном контексте.
их по сути нет. ни Pshen, ни булевой переменной IsPlanted, ни GameObject-а Player? ничего. ни одного поля не объявил. так далеко не уедешь. учи язык дружище и учи движок. нужно вынести их из функции старт выше.
начать должен был так
C#
1
2
3
4
public class Farm_Action : MonoBehaviour {
public bool IsPlanted;
public int Pshen;
public GameObject Player;
после сохранения скрипта, в редакторе Unity, в инспекторе появятся поля переменных. в Player затащишь своего игрока и вперед и с песней учиться

Добавлено через 5 минут
Цитата Сообщение от Maxim Pintea Посмотреть сообщение
Instantiate("Pshenitsa",Player.transform.position);
добавь еще один геймобджект пшеницу ,как и плеера. и передавай без кавычек именно имя геймобджекта пшеницы

Добавлено через 32 секунды
Instantiate(Pshenitsa,Player.transform.position);
1
1 / 1 / 0
Регистрация: 10.03.2018
Сообщений: 41
19.03.2018, 23:56  [ТС] 5
Я так сделал только вот Player.transform.position не работает ( работаю я в unity 5 )
0
368 / 283 / 97
Регистрация: 07.05.2017
Сообщений: 2,000
20.03.2018, 00:05 6
Цитата Сообщение от Maxim Pintea Посмотреть сообщение
Destroy("Pshenitsa");
тут тоже без кавычек нужно Pshenitsa

Добавлено через 6 минут
не понятно на чем висит скрипт.опиши структуру сцены. если он на пшенице, то Destroy(this);
и опять же, удаляя пшеницу со скриптом ты отключаешь сам скрипт. он перестает работать. нужно по другому строить систему. вешать скрипт на другой объект. на пустышку например ,или на игрока хотя бы
0
1 / 1 / 0
Регистрация: 10.03.2018
Сообщений: 41
20.03.2018, 00:09  [ТС] 7
Скрипт на игроке висит
0
368 / 283 / 97
Регистрация: 07.05.2017
Сообщений: 2,000
20.03.2018, 00:15 8
и добавь саму пшеницу
C#
1
2
3
4
5
6
public class Farm_Action : MonoBehaviour {
 
public bool IsPlanted;
public int Pshen;
public GameObject Player;
public GameObject Pshenitsa;
у тебя ее тоже нет

Добавлено через 2 минуты
вставь последнюю версию скрипта
0
1 / 1 / 0
Регистрация: 10.03.2018
Сообщений: 41
20.03.2018, 00:16  [ТС] 9
Я уже добавил огромное спасибо теперь я лучше понимаю ООП и ошибку исправил.
0
368 / 283 / 97
Регистрация: 07.05.2017
Сообщений: 2,000
20.03.2018, 00:16 10
объекты перетянул в поля GameObject ?
0
136 / 131 / 43
Регистрация: 07.11.2017
Сообщений: 553
20.03.2018, 12:20 11
Цитата Сообщение от Maxim Pintea Посмотреть сообщение
Я уже добавил
чтобы работать с любой переменной, ее нужно
1) обьявить/назвать/именовать
аля
C#
1
GameObject kabachok;
2) ее нужно инициализировать
аля
C#
1
kabachok = new GameObject ();
или
C#
1
kabachok = Instantiate (kabachok_prefab,.,.);
3) и только после этого с ней работать
C#
1
Destroy(kabachok);
C#
1
kabachok.transform.position = ...;
...
1
20.03.2018, 12:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.03.2018, 12:20
Помогаю со студенческими работами здесь

Компилятор выдаёт ошибку на getline
#include &quot;pch.h&quot; #include&lt;iostream&gt; #include&lt;fstream&gt; #include &lt;string&gt; #include &lt;string&gt;...

Работа с классами, компилятор выдаёт ошибку
Дан следующий базовый класс: class area_cl { public: double height; double width; }; ...

Компилятор выдаёт ошибку: неразрешенный вид '_main
#include &lt;vcl.h&gt; #include &lt;iostream.h&gt; using namespace std; class CClass { protected: ...

Компилятор выдаёт ошибку error C4996: 'strcpy': This function or variable may be unsafe
Добрый день! Помогите , пожалуйста, узнать в чём проблема. Код взят из книги. Мне он не очень...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru