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

Re: Смещение камеры по оси Х

СообщениеДобавлено: 07 ноя 2019, 18:54
nurbolg
1max1 писал(а):Ну так смещай ее в коде, где у тебя кнопки нажимаются.

как смещать помогите! :(

Re: Смещение камеры по оси Х

СообщениеДобавлено: 11 ноя 2019, 20:28
nurbolg
1max1 писал(а):Ну так смещай ее в коде, где у тебя кнопки нажимаются.

Можете помочь как смещать, не получилось
Синтаксис:
Используется csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

class PlayerControl : MonoBehaviour
{
        [SerializeField] float force = 2.7f;
        [SerializeField] float jump = 8.8f;
        [SerializeField] GameObject StartGround;
        [SerializeField] AudioClip NiceScore;

        [SerializeField] Camera Camera;
        [SerializeField] float offsetX = 10.0f;
        [SerializeField] float intens = 5.0f;

        Rigidbody2D rb2D;


        void Start()
        {
                rb2D = GetComponent<Rigidbody2D> ();
                rb2D = Camera.GetComponent<Rigidbody2D> ();
        }

        void LeftTap()
            {
                rb2D.velocity += (Vector2.up) * jump;
                rb2D.velocity += (Vector2.up + Vector2.left) * force;
                Destroy (StartGround);

                var newPos = Camera.transform.position + Vector3.left * rb2D.velocity.normalized.x * offsetX;
                newPos.z = transform.position.z;
                transform.position = Vector3.Lerp(transform.position, newPos, intens * Time.deltaTime);
                }

        void RightTap()
        {
                rb2D.velocity += (Vector2.up) * jump;
                rb2D.velocity += (Vector2.up + Vector2.right) * force;
                Destroy (StartGround);

                var newPos = Camera.transform.position + Vector3.right * rb2D.velocity.normalized.x * offsetX;
                newPos.z = transform.position.z;
                transform.position = Vector3.Lerp(transform.position, newPos, intens * Time.deltaTime);
                }
               
        private void OnTriggerEnter2D(Collider2D other)
        {
                Score.score++;
                if (other.gameObject.CompareTag ("AddScore")) {
                        Destroy (other.gameObject);
                }
                if (Score.score % 10 == 0)
                {
                        GetComponent<AudioSource> ().clip = NiceScore;
                        GetComponent<AudioSource> ().Play ();
                }
        }

}

Re: Смещение камеры по оси Х

СообщениеДобавлено: 11 ноя 2019, 20:43
1max1
Синтаксис:
Используется csharp
transform.position = Vector3.Lerp(transform.position, newPos, intens * Time.deltaTime);

Здесь ты смещаешь не камеру, а сам объект, и причем очень незначительно. Можно сделать резкое смещение без лерпа:
Синтаксис:
Используется csharp
var newPos = Camera.transform.position + Vector3.right * rb2D.velocity.normalized.x * offsetX;
newPos.z = Camera.transform.position.z;
Camera.transform.position = newPos;

Re: Смещение камеры по оси Х

СообщениеДобавлено: 11 ноя 2019, 23:33
arahis
Народ а можно сделать типа&
camera.transform=transform.LookAt(gamer.transform)+Vector3(...)
(popcorn1)

Re: Смещение камеры по оси Х

СообщениеДобавлено: 11 ноя 2019, 23:51
1max1
arahis писал(а):Народ а можно сделать типа&
camera.transform=transform.LookAt(gamer.transform)+Vector3(...)
(popcorn1)

В 2д игре? Хм...

Re: Смещение камеры по оси Х

СообщениеДобавлено: 14 ноя 2019, 15:22
nurbolg
1max1 писал(а):
Синтаксис:
Используется csharp
transform.position = Vector3.Lerp(transform.position, newPos, intens * Time.deltaTime);

Здесь ты смещаешь не камеру, а сам объект, и причем очень незначительно. Можно сделать резкое смещение без лерпа:
Синтаксис:
Используется csharp
var newPos = Camera.transform.position + Vector3.right * rb2D.velocity.normalized.x * offsetX;
newPos.z = Camera.transform.position.z;
Camera.transform.position = newPos;

Спасибо! :-bd

А можно и как сделать так чтобы когда персонаж прыгнет в левую сторону и дойдет до -6,5 по оси Х камера сместится влево, если прыгнет в правую сторону и дойдет до +2,5 по оси Х камера сместится в правую сторону, и когда персонаж будет находиться по центру по например -2,4 по оси Х чтобы камера вернулась в исходное положение, изначально камера стоит по центру в -2,4 по Х.