Страница 1 из 1

Что здесь не так?

СообщениеДобавлено: 20 фев 2018, 00:31
Ванька Иванов
Написал (c#) скриптик, чтобы персонаж мог садиться (не дописал ещё). Но [unity 3D] юнити упорно не хочет читать этот скрипт, т. к. я где-то в условии налажал. ЧТО ЗДЕСЬ НЕ ТАК:

Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;

public class SitDown : MonoBehaviour {

        public CharacterController Character;       //Мой CaracterController
        public KeyCode KeySit;                            //Кнопка, на которую должен садиться ГГ
        public float SitHeight;                             //Высота сидящего
        public float SpeedSit;                              //Скорость сажения (надо ли???)

        private float StartHeight;                       //Начальная высота

        void Start () {   //Здесь потом напишу

        }

        void Update () {
                if(Input.GetKey(KeyCode = KeySit));                          //Пишет, здесь ошибка
                {
                        Mathf.Lerp(StartHeight, SitHeight, SpeedSit);  //Здесь правильно?
                }
        }
}
 

Re: Что здесь не так?

СообщениеДобавлено: 20 фев 2018, 00:35
samana
Вместо = нужно ==
ps. = это присваивание, а == проверка на равенство

Mathf.Lerp(StartHeight, SitHeight, SpeedSit); //Здесь правильно?

Нет, здесь неправильно.

Re: Что здесь не так?

СообщениеДобавлено: 20 фев 2018, 00:42
Ванька Иванов
[quote="samana"]Вместо = нужно ==
ps. = это присваивание, а == проверка на равенство

Что-то без разницы ему, как я написал.

Ошибки:

Assets/al/Scripts/SitDown.cs(20,33): error CS0119: Expression denotes a `type', where a `variable', `value' or `method group' was expected
Assets/al/Scripts/SitDown.cs(20,26): error CS1502: The best overloaded method match for `UnityEngine.Input.GetKey(string)' has some invalid arguments
Assets/al/Scripts/SitDown.cs(20,26): error CS1503: Argument `#1' cannot convert `object' expression to type `string'

Re: Что здесь не так?

СообщениеДобавлено: 20 фев 2018, 00:49
samana
У вас там вообще куча ошибок, как логических, так и синтаксических если честно.

Синтаксис:
Используется csharp
if(Input.GetKey(KeySit)) // знак ; здесь ставить не нужно
{

}

Re: Что здесь не так?

СообщениеДобавлено: 20 фев 2018, 01:05
TheSimplest
У вас есть ошибки, как заметил предыдущий человек, и причём глупые... Изучите(повторите) C#, благо в интернете уроков хватает. Так же в последней строчке вы просто так написали "Mathf.Lerp" потому что он лишь возвращает значение между двумя переменными. Там как минимум надо дописать вектор и изменение позиции по этому вектору.