为什么我在已给物体加了这个脚本下落速度就很慢.差不多匀速
unity3d吧
全部回复
仅看楼主
level 5
wind2号 楼主
Rigidbody rbody;
float speed = 5;
float rotationSpeed = 5;
// Start is called before the first frame update
void Start()
{
rbody = GetComponent<Rigidbody>();
}
// Update is called once per frame
void Update()
{
//Move();
}
private void FixedUpdate()
{
Move();
}
private void Move()
{
float vertical = Input.GetAxis("Vertical");//垂直输入
rbody.velocity = rbody.transform.forward * vertical * speed*Time.deltaTime;//速度
float horizontal = Input.GetAxis("Horizontal");//水平输入
rbody.angularVelocity = rbody.transform.up * horizontal * rotationSpeed*Time.deltaTime;//旋转速度
}
2021年09月28日 18点09分 1
level 5
wind2号 楼主
就一个cube加了刚体和这脚本
2021年09月28日 18点09分 2
加不加time.deltatime都一样
2021年09月28日 19点09分
level 9
因为你直接设置了一个速度啊.......【rbody.velocity = rbody.transform.forward * vertical * speed*Time.deltaTime;】就这句。假设你按住方向键不动,vertical就是一个常数了(比如1或-1),speed是5也是常数,forward应该是个(0,0,1)吧我记得,那可不就是个匀速运动么=。=
如果你希望你的物体平时自由落体,按键之后加速降落,那你应该给他一个力,用Rigidbody.AddForce,而不是直接设置rigidbody的速度。
事实上如果你想要相对真实的物理效果,绝大多数时候最好都尽量用addForce而不要直接设置rigidbody的速度。
2021年09月28日 22点09分 3
@wind2号 它不是【影响】了速度,是你直接给它【设定】了一个速度。从而架空/覆盖了它本身的自由落体的效果,他就不自由落体了,而是按着你给的速度运动...明白了吧。
2021年09月29日 12点09分
还是没懂[狂汗]forward不是向前么 为什么会影响上下
2021年09月28日 23点09分
其实我是想当成人一样控制移动.而且还有问题是容易摔倒磕头. 所以应该是用characterControler才行比较好?
2021年09月28日 23点09分
@wind2号 forward就是个(0,0,1)的向量而已,Unity坐标系默认“z轴正方向”是“前方”。不知道你这代码是从哪来的,我估计可能是因为那个GameObjec已经t延x轴旋转了90度,也就是“脸朝下”(或者脸朝上)的状态......
2021年09月29日 07点09分
1