И у меня ещё почемуто не работает в данном скрипте Input.GetAxis("Mouse ScrollWheel")
Синтаксис:
Используется csharp
using UnityEngine;
using System;
using System.Collections;
public class MouseLook : MonoBehaviour {
public Transform target;
public float xSpeed=12.0f;
public float ySpeed=12.0f;
public float scrollSpeed=10.0f;
public float zoomMin=1.0f;
public float zoomMax=20.0f;
public float distance=2;
public float Ypos;
public Vector3 position;
float y=0.0f;
float x=0.0f;
// Use this for initialization
void Start () {
Vector3 angles = transform.eulerAngles;
x=angles.y;
y=angles.x;
position=-(transform.forward*distance)+target.position;
transform.position=position;
Ypos=transform.position.y;
}
void Update(){
}
void LateUpdate(){
if (target){
x+=Input.GetAxis("Mouse X")*xSpeed;
y-=Input.GetAxis("Mouse Y")*ySpeed;
transform.RotateAround(target.position,transform.up,x);
transform.RotateAround(target.position,transform.right,y);
transform.rotation=Quaternion.Euler(transform.rotation.x,transform.rotation.y,0);
transform.rotation=Quaternion.LookRotation(target.position - transform.position);
Ypos=transform.position.y;
x=0;
y=0;
}else{
if (Input.GetAxis("Mouse ScrollWheel") !=0 )
{
distance=Vector3.Distance(transform.position, target.position);
distance=ZoomLimit(distance - Input.GetAxis("Mouse ScrollWheel")*scrollSpeed,zoomMin,zoomMax);
position=target.position-(transform.forward*distance);
Ypos=position.y;
transform.position=position;
}
}
float d2=Vector3.Distance(transform.position,target.position);
if (d2!=distance){
position=-(transform.forward*distance)+target.position;
position.y=Ypos;
transform.position=position;
}
}
public static float ZoomLimit(float dist, float min, float max){
if (dist<min)
dist=min;
if (dist>max)
dist=max;
return dist;
}
}
using System;
using System.Collections;
public class MouseLook : MonoBehaviour {
public Transform target;
public float xSpeed=12.0f;
public float ySpeed=12.0f;
public float scrollSpeed=10.0f;
public float zoomMin=1.0f;
public float zoomMax=20.0f;
public float distance=2;
public float Ypos;
public Vector3 position;
float y=0.0f;
float x=0.0f;
// Use this for initialization
void Start () {
Vector3 angles = transform.eulerAngles;
x=angles.y;
y=angles.x;
position=-(transform.forward*distance)+target.position;
transform.position=position;
Ypos=transform.position.y;
}
void Update(){
}
void LateUpdate(){
if (target){
x+=Input.GetAxis("Mouse X")*xSpeed;
y-=Input.GetAxis("Mouse Y")*ySpeed;
transform.RotateAround(target.position,transform.up,x);
transform.RotateAround(target.position,transform.right,y);
transform.rotation=Quaternion.Euler(transform.rotation.x,transform.rotation.y,0);
transform.rotation=Quaternion.LookRotation(target.position - transform.position);
Ypos=transform.position.y;
x=0;
y=0;
}else{
if (Input.GetAxis("Mouse ScrollWheel") !=0 )
{
distance=Vector3.Distance(transform.position, target.position);
distance=ZoomLimit(distance - Input.GetAxis("Mouse ScrollWheel")*scrollSpeed,zoomMin,zoomMax);
position=target.position-(transform.forward*distance);
Ypos=position.y;
transform.position=position;
}
}
float d2=Vector3.Distance(transform.position,target.position);
if (d2!=distance){
position=-(transform.forward*distance)+target.position;
position.y=Ypos;
transform.position=position;
}
}
public static float ZoomLimit(float dist, float min, float max){
if (dist<min)
dist=min;
if (dist>max)
dist=max;
return dist;
}
}