RgglABS
1
Hi, guys. Help please!! How i can do limit rotation in axis x?. Math.Clamp - not work. It work for Y, but it not work for X.
rotationX = transform.localEulerAngles.y + Input.GetAxis("Mouse X") * sensitivityX;
rotationY = Mathf.Clamp (rotationX, minimumX, maximumX);
And i have one more question. How i can do this crosshair. I think, what i can measure distance of raycast spawnpain—>crosshairpoint.
ASHOK
2
// for angle limitation look at Look()
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraController : MonoBehaviour
{
public PlayerManager player;
public float sensitivity = 100f;
public float clampAngle = 85f;
private float verticalRotation;
private float horizontalRotation;
private void Start()
{
verticalRotation = transform.localEulerAngles.x;
horizontalRotation = player.transform.eulerAngles.y;
}
private void Update()
{
Look();
Debug.DrawRay(transform.position, transform.forward * 2, Color.red);
}
private void Look()
{
float _mouseVertical = -Input.GetAxis("Mouse Y");
float _mouseHorizontal = Input.GetAxis("Mouse X");
verticalRotation += _mouseVertical* sensitivity * Time.deltaTime;
horizontalRotation += _mouseHorizontal * sensitivity * Time.deltaTime;
verticalRotation = Mathf.Clamp(verticalRotation, -clampAngle, clampAngle);
transform.localRotation = Quaternion.Euler(verticalRotation, 0f, 0f);
player.transform.rotation = Quaternion.Euler(0f, horizontalRotation, 0f);
}
}