与对象相关的缩放
Zoom related to object
我正在尝试缩放我的播放器,我的播放器是一个球并且它连接到相机,基本上我已经实现了缩放代码,但是不知何故当我在游戏中放大球时它没有正确缩放球消失了,我想缩放对象而不是相机本身,我该怎么做?
这是我试过的
void LateUpdate ()
{
if(Time.timeScale != 0){
if(Input.GetKey(KeyCode.X)){
isZoomed = true;
}else if(Input.GetKey(KeyCode.C)){
isZoomed = false;
}
if(isZoomed == true){
camera.fieldOfView = Mathf.Lerp(camera.fieldOfView,zoom,Time.deltaTime*smooth);
}
else{
camera.fieldOfView = Mathf.Lerp(camera.fieldOfView,normal,Time.deltaTime*smooth);
}
}
}
Vector3 moveDirection = Camera.main.transform.TransformDirection (Vector3.forward);
Camera.main.transform.Translate (moveDirection * zoomSpeed * moveDirection);
可能是一个可行的解决方案。它所做的是将相机移近玩家。但是你应该 "unattach" 播放器的相机。如果你想远离播放器 AKA 缩小,你可以改为执行 -moveDirection。
我正在尝试缩放我的播放器,我的播放器是一个球并且它连接到相机,基本上我已经实现了缩放代码,但是不知何故当我在游戏中放大球时它没有正确缩放球消失了,我想缩放对象而不是相机本身,我该怎么做?
这是我试过的
void LateUpdate ()
{
if(Time.timeScale != 0){
if(Input.GetKey(KeyCode.X)){
isZoomed = true;
}else if(Input.GetKey(KeyCode.C)){
isZoomed = false;
}
if(isZoomed == true){
camera.fieldOfView = Mathf.Lerp(camera.fieldOfView,zoom,Time.deltaTime*smooth);
}
else{
camera.fieldOfView = Mathf.Lerp(camera.fieldOfView,normal,Time.deltaTime*smooth);
}
}
}
Vector3 moveDirection = Camera.main.transform.TransformDirection (Vector3.forward);
Camera.main.transform.Translate (moveDirection * zoomSpeed * moveDirection);
可能是一个可行的解决方案。它所做的是将相机移近玩家。但是你应该 "unattach" 播放器的相机。如果你想远离播放器 AKA 缩小,你可以改为执行 -moveDirection。