如何在谷歌纸板中添加第一人称角色控制器,使其在连续方向上向前移动? 我知道这是一个愚蠢的问题,但因为我是新的,实际上几个小时前制作了一个简单的纸板游戏。我没有得到如何在我的谷歌卡棋盘游戏中添加第一人称控制器脚本?
答案 0 :(得分:4)
这是来自github的 AutoWalk.cs 脚本,我个人用它来让我的角色走路。此脚本使相机(和绑定字符)向前移动,具有简单的头部倾斜或磁铁触发器。 https://github.com/JuppOtto/Google-Cardboard/blob/master/Autowalk.cs
注意:github中的代码适用于Google Cardboard SDK。所以你会有 如果你想让它兼容,可以稍微修改一下 最新的Google VR SDK(少量变量名称更改)。
然而,这是我推荐的临时解决方案,因为我们等待Google发布DayDream
答案 1 :(得分:1)
实际上你只是在场景中插入GvrViewerMain.prefab,这个预制版改变了立体渲染中的所有摄影机,你只需要把你的FPSController和修改101行放在他脚本中的脚本FirsPersonController.cs中。
更改此行
Vector3 desiredMove = transform.forward*m_Input.y + transform.right*m_Input.x;//MODIFIED TO WALK FOR EVER
你只需要用Time.deltaTime替换m_Input.y,就像这样。
Vector3 desiredMove = transform.forward*Time.deltaTime + transform.right*m_Input.x;//MODIFIED TO WALK FOR EVER
更清洁的解决方案:
在场景中添加一个摄像头,添加一个characterController组件。 在相机内添加新脚本:
using UnityEngine;
using System.Collections;
public class movement : MonoBehaviour {
public float speed = 6.0F;
public float jumpSpeed = 8.0F;
public float gravity = 20.0F;
private Vector3 moveDirection = Vector3.zero;
void Update() {
CharacterController controller = GetComponent<CharacterController>();
if (controller.isGrounded) {
moveDirection = transform.TransformDirection(Vector3.forward);
moveDirection *= speed;
if (Input.GetButton("Jump"))
moveDirection.y = jumpSpeed;
}
moveDirection.y -= gravity * Time.deltaTime;
controller.Move(moveDirection * Time.deltaTime);
}
}