[英]Looking for basic explanation on unity matchmaker (5.4) and how to use in scripts
[英]Unity Basic Functions Explanation
如标题中所述,如果可能的话,我希望有人向我解释一些基本知识。
1) Rigibody.AddForce(Vector3(50, 50, 50) * speed)
;
当给定坐标时,为什么对象会移动? 如果将其乘以如图所示,它甚至会更快? 我猜这是相同的:
transform.Translate(-speed * Time.deltaTime * Input.GetAxis("Horizontal"), 0, 0);
重点是:我传递坐标,并使用计算出的值向右移动
(坐标*速度* Something_Else)。 怎么会 ??
我真的很感谢任何答案。
更新1:如果我将Vector3乘以某个浮点数,它也将返回Vector3,但是对象的速度将增加。 我不明白为什么。 坐标只是坐标。 如何利用“更大”的坐标更快地移动物体?
float speed = 50.00f; Rigibody.AddForce(Vector3(50, 50, 50) * speed)
float speed = 50.00f; Rigibody.AddForce(Vector3(50, 50, 50) * speed)
;
一,概念:
因此,具有变形但没有刚体的对象将不受重力,碰撞或力的影响
您实际上可以通过根据时间更改平移的位置来在没有刚体的情况下“模拟”物理,但是它不会与物理系统的其余部分正确交互(这是您的2种实现之间的主要区别,两者不同,但是可能看起来相似)
然后,两者以相同的方式工作,您传递了一个Vector,该Vector表示每个轴的力/距离:
myRigibody.AddForce(Vector3(2,0,0)); //Force of 2 applied in x axys
myTransform.Translate(Vector3(2,0,0)); //translate 2 position in x axys
因此,通常,您使用规格化向量(模块等于1),并将其乘以速度(或从技术上讲强制使用):
//first vector is direction (x axys) and multiply by speed (2)
myRigibody.AddForce(Vector3(1,0,0)*2);
不仅将向量视为空间坐标,而且还将其视为方向或该方向上的距离。
更新答案
在给定的示例中,当谈到力时,我们有Vector3(50,50,50),它表示每个轴上的力:
Rigidbody.AddForce(Vector3(50, 40, 30));
此方法将向对象施加每个轴50单位的初始力(将对其加速),也就是说,对象将具有50轴x轴,40轴y轴和30轴z轴的力,使得它向各个方向加速
将向量乘以标量将返回Vector3,其中所有分量都将相乘,因此Vector3(50,40,30)*2
将返回与Vector3(100,80,60)
相同的Vector3(100,80,60)
,从而使对象向相同方向加速但具有“速度”的两倍
这里的主要问题不是关于编程,而是一些基本的数学/物理理解以及如何使用向量,正如我之前所说,向量与坐标并不相同,简而言之,坐标代表空间中的一个点,而向量代表一个方向和“距离”,因此,使用[1,0,0]作为坐标,它代表从原点起的正x轴上的1米,而作为向量,它代表从 [0]开始的距离和方向,0,0]至[1,0,0]。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.