Смещение камеры по оси Х
Добавлено: 03 ноя 2019, 19:10
Привет всем! Необходимо помощь, нужно чтобы при нажатии левой или правой кнопки когда персонаж перемещается влево или вправо (а сам персонаж летит вверх по оси Y) , чтобы камера смещалась чуть по оси х влево или вправо смотря какую кнопку нажимать, я пытался написать что-то, но не работает!
Синтаксис:
Используется csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraControl : MonoBehaviour {
public Transform target;
public float damping = 1.5f;
public Vector2 offset = new Vector2(2f, 1f);
public bool faceLeft;
private int lastX;
public float smoothSpeed = .3f;
void Start ()
{
offset = new Vector2(Mathf.Abs(offset.x), offset.y);
}
public void FindPlayer(bool playerFaceLeft)
{
lastX = Mathf.RoundToInt(target.position.y);
if(playerFaceLeft)
{
target.position = new Vector2(target.position.x - offset.x, transform.position.z);
}
else
{
target.position = new Vector2(target.position.x + offset.x, transform.position.z);
}
}
void LateUpdate ()
{
if (target.position.y > transform.position.y)
{
Vector3 newPos = new Vector3 (transform.position.x, target.position.y, transform.position.z);
transform.position = Vector3.Lerp (transform.position, newPos, smoothSpeed);
}
}
}
using System.Collections.Generic;
using UnityEngine;
public class CameraControl : MonoBehaviour {
public Transform target;
public float damping = 1.5f;
public Vector2 offset = new Vector2(2f, 1f);
public bool faceLeft;
private int lastX;
public float smoothSpeed = .3f;
void Start ()
{
offset = new Vector2(Mathf.Abs(offset.x), offset.y);
}
public void FindPlayer(bool playerFaceLeft)
{
lastX = Mathf.RoundToInt(target.position.y);
if(playerFaceLeft)
{
target.position = new Vector2(target.position.x - offset.x, transform.position.z);
}
else
{
target.position = new Vector2(target.position.x + offset.x, transform.position.z);
}
}
void LateUpdate ()
{
if (target.position.y > transform.position.y)
{
Vector3 newPos = new Vector3 (transform.position.x, target.position.y, transform.position.z);
transform.position = Vector3.Lerp (transform.position, newPos, smoothSpeed);
}
}
}