Задать вопрос
@Almaz_2020

Пропущена директива using или ссылка на сборку c#?

using System.Collections.Generic;
using UnityEngine;

public class MovePlayer : MonoBehaviour
{
public Transform player;
[SerializeField]
private float speed = 10f;
private void OnMouseDrag()
{
if (!player.lose)ОШИБКА
{
Vector3 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
mousePos.x = mousePos.x > 2.5f ? 2.5f : mousePos.x;
mousePos.x = mousePos.x < -2.5f ? -2.5f : mousePos.x;
player.position = Vector2.MoveTowards(player.position,
new Vector2(mousePos.x, player.position.y), speed * Time.deltaTime);
}
}

}
ОШИБКА, код для Unity
Пропущена директива using или ссылка на сборку !
  • Вопрос задан
  • 1901 просмотр
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
MrMureno
@MrMureno Куратор тега Unity
VR for all
Давайте попробуем научиться и разъяснить)))
Вот ваш код из комментариев к другому ответу (чтоб понятнее было о чем речь идет другим людям)
public class player : MonoBehaviour
{
public static bool lose = false;
private void OnTriggerEnter2D(Collider2D other) {
if (other.gameObject.tag == "bomb")
lose = true;
}


Теперь к сути.
В принципе к статичной переменной можно обратиться через
НазваниеКласса.ИмяПеременной
БЕЗ каких либо ссылок на объект, на то она и статика.

Но у вас
переменная и класс называются ОДИНАКОВО (не говоря уже про то что классы б с заглавной именовать)
//public Transform player;
public  SomeClassName someObjectRef;
//////
//bool flagFromStatic = player.lose;
bool flagFromStatic = SomeClass.staticVariableInClass;
bool flagFromClassObject = someObjectRef.nonStaticVariableInClass;


в общем тут явно требуется изучить ОСНОВЫ языка и программирования как такового.
удачи
Ответ написан
Комментировать
GavriKos
@GavriKos Куратор тега Unity
У Transform нет поля lose в принципе. Так что либо player должен быть не Transform, либо там должен быть не lose.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы