Пишет The name 'lastX' does not exist in the current context подскажите пжл что делать
вот сам скрипт:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraControl : MonoBehaviour
{
public float dumping = 1.5f;
public Vector2 offset = new Vector2(2f, 1f);
public bool isLeft;
private Transform player;
private int last;
[SerializeField]
float leftlimit;
[SerializeField]
float rightLimit;
[SerializeField]
float bottomLimit;
[SerializeField]
float upperLimit;
void Start()
{
offset = new Vector2(Mathf.Abs(offset.x), offset.y);
FindPlayer(isLeft);
}
public void FindPlayer(bool playerIsLeft)
{
player = GameObject.FindGameObjectWithTag("Player").transform;
lastX = Mathf.RoundToInt(player.position.x);
if (playerIsLeft)
{
transform.position = new Vector3(player.position.x - offset.x, player.position.y - offset.y, transform.position.z);
}
else
{
transform.position = new Vector3(player.position.x + offset.x, player.position.y + offset.y, transform.position.z);
}
}
void Update ()
{
if (player)
{
int currentX = Mathf.RoundToInt(player.position.x);
if (currentX > lastX) isLeft = false; else if (currentX < lastX) isLeft = true;
lastX = Mathf.RoundToInt(player.position.x);
Vector3 target;
if (isLeft)
{
target = new Vector3(player.position.x - offset.x, player.position.y + offset.y, transform.position.z);
}
else
{
target = new Vector3(player.position.x + offset.x, player.position.y + offset.y, transform.position.z);
}
Vector3 currentPosition = Vector3.Lerp(transform.position, target, dumping * Time.deltaTime);
transform.position = currentPosition;
}
transform.position = new Vector3
(
Mathf.Clamp(transform.position.x, leftlimit, rightLimit),
Mathf.Clamp(transform.position.y, bottomLimit, upperLimit),
transform.position.z
);
}
}
C#
Пишет The name 'lastX' does not exist in the current context подскажите пжл что делать.ЮНИТИ
Нет у вас переменной lastX, есть только поле last:
private int last;
Наверное, должно быть так: private int lastX;
Борис Эдуардов
Понял,спасибо
А где у тебя описан этот lastX? Чой-то я слепой стал совсем, не вижу...
using System;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
public class CameraControl : MonoBehaviour
{
public float dumping = 1.5f;
public Vector2 offset = new Vector2(2f, 1f);
public bool isLeft;
private Transform playerTransform; // добавлена declartion playerTransform
[Header("Player")]
private int lastX; // добавлены Header и declartion lastX
[Range(-180, 180)]
[Tooltip("left limit of camera movement")]
public float leftLimit;
[Range(-180, 180)]
[Tooltip("right limit of camera movement")]
public float rightLimit;
[Range(-90, 90)]
[Tooltip("bottom limit of camera movement")]
public float bottomLimit;
[Range(-90, 90)]
[Tooltip("top limit of camera movement")]
public float topLimit;
void Start()
{
offset = new Vector2(Mathf.Abs(offset.x), offset.y);
FindPlayer(isLeft);
}
public void FindPlayer(bool playerIsLeft)
{
playerTransform = GameObject.FindGameObjectWithTag("Player").transform;
lastX = Mathf.RoundToInt(playerTransform.localPosition.x);
if (playerIsLeft)
{
transform.localPosition = new Vector3(playerTransform.localPosition.x - offset.x, playerTransform.localPosition.y - offset.y, transform.localPosition.z);
}
else
{
transform.localPosition = new Vector3(playerTransform.localPosition.x + offset.x, playerTransform.localPosition.y + offset.y, transform.localPosition.z);
}
}
void Update ()
{
if (playerTransform)
{
int currentX = Mathf.RoundToInt(playerTransform.localPosition.x);
if (currentX > lastX) isLeft = false;
else if (currentX < lastX) isLeft = true;
lastX = Mathf.RoundToInt(playerTransform.localPosition.x);
Vector3 target;
if (isLeft)
{
target = new Vector3(playerTransfor
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
public class CameraControl : MonoBehaviour
{
public float dumping = 1.5f;
public Vector2 offset = new Vector2(2f, 1f);
public bool isLeft;
private Transform playerTransform; // добавлена declartion playerTransform
[Header("Player")]
private int lastX; // добавлены Header и declartion lastX
[Range(-180, 180)]
[Tooltip("left limit of camera movement")]
public float leftLimit;
[Range(-180, 180)]
[Tooltip("right limit of camera movement")]
public float rightLimit;
[Range(-90, 90)]
[Tooltip("bottom limit of camera movement")]
public float bottomLimit;
[Range(-90, 90)]
[Tooltip("top limit of camera movement")]
public float topLimit;
void Start()
{
offset = new Vector2(Mathf.Abs(offset.x), offset.y);
FindPlayer(isLeft);
}
public void FindPlayer(bool playerIsLeft)
{
playerTransform = GameObject.FindGameObjectWithTag("Player").transform;
lastX = Mathf.RoundToInt(playerTransform.localPosition.x);
if (playerIsLeft)
{
transform.localPosition = new Vector3(playerTransform.localPosition.x - offset.x, playerTransform.localPosition.y - offset.y, transform.localPosition.z);
}
else
{
transform.localPosition = new Vector3(playerTransform.localPosition.x + offset.x, playerTransform.localPosition.y + offset.y, transform.localPosition.z);
}
}
void Update ()
{
if (playerTransform)
{
int currentX = Mathf.RoundToInt(playerTransform.localPosition.x);
if (currentX > lastX) isLeft = false;
else if (currentX < lastX) isLeft = true;
lastX = Mathf.RoundToInt(playerTransform.localPosition.x);
Vector3 target;
if (isLeft)
{
target = new Vector3(playerTransfor
Похожие вопросы
- Всем привет , проблема с юнити файлом
- Можно ли считать расстояние до LayerMask в юнити?
- Сделал код в юнити, но он не работает. Как исправить ошибку?
- Нужен человек для Юнити
- Скрипт на юнити 3д
- Скрипт на юнити 3д
- Помогите, делаю игру 2д юнити!!!
- Подскажите ГеймДев вуз для программиста, C# Юнити либои С++ Unreal Engine (Желательно хорошие/максимально хорошие)
- Как наложить сразу несколько текстур на модель Юнити?
- Кто шарит в играх на юнити, помогите