我目前正在编写一个游戏,玩家必须倾斜手机以旋转世界,以便他们可以在迷宫中导航。事实证明这很困难,因为当我旋转手机时,精灵会飞出屏幕。 我认为这与角色和世界的对撞机之间的力量有关,最终导致了角色的发射。 但是,我希望角色使重力跟随玩家的相对向下方向,以便角色旋转时跌落到脚的方向。
因此,我应该如何旋转重力方向以相对于精灵的方向,并防止播放器在旋转时飞走?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GyroController : MonoBehaviour {
private Gyroscope Gyro ;
private float rotation;
private Vector3 startEulerAngles;
private Vector3 startGyroAttitudeToEuler;
public GameObject Player = null;
private void Awake () {
if (SystemInfo.supportsGyroscope) {
Gyro = Input.gyro;
Gyro.enabled = false;
startEulerAngles = transform.eulerAngles;
startGyroAttitudeToEuler = Input.gyro.attitude.eulerAngles;
Debug.Log("Gyro Enabled");
}
else {
Debug.Log("No Gyro Detected");
}
}
private void Update()
{
Vector3 deltaEulerAngles = Input.gyro.attitude.eulerAngles - startGyroAttitudeToEuler;
deltaEulerAngles.x = 0.0f;
deltaEulerAngles.y = 0.0f;
Player.transform.eulerAngles = startEulerAngles - deltaEulerAngles;
}
}
到目前为止,我只尝试了一种改变重心方向的方法,该方法涉及移动重心,这只会使角色跌落通过其他对撞机。因此,我的重力代码未包含在此代码段中。
我并不是要为我编写代码,而只是要求我寻找一个方向,因为我已经死于僵化了。
谢谢。