我们如何实现类似于此游戏的控制? https://play.google.com/store/apps/details?id=com.fridgecat.android.atiltlite&hl=en
答案 0 :(得分:5)
你可以用内置物理学做到这一点:
添加球 - 球体,然后添加RigidBody
。在刚体上设置一个约束 - 检查冻结位置y(或者如果你将设备倒置,它就能跳出关卡)。
将此脚本添加到场景的任何位置(例如添加到相机):
using UnityEngine;
public class GravityFromAccelerometer : MonoBehaviour {
// gravity constant
public float g=9.8f;
void Update() {
// normalize axis
Physics.gravity=new Vector3(
Input.acceleration.x,
Input.acceleration.z,
Input.acceleration.y
)*g;
}
}
或者如果您希望物理只影响这一个对象,请将此脚本添加到对象并关闭它受重力影响的刚体:
using UnityEngine;
[RequireComponent(typeof(Rigidbody))]
public class ForceFromAccelerometer : MonoBehaviour {
// gravity constant
public float g=9.8f;
void FixedUpdate() {
// normalize axis
var gravity = new Vector3 (
Input.acceleration.x,
Input.acceleration.z,
Input.acceleration.y
) * g;
GetComponent<Rigidbody>().AddForce (gravity, ForceMode.Acceleration);
}
}
现在你有球的物理学。要使球按照您的喜好运行,请尝试使用刚体属性。例如,将拖动更改为0.1。