Appearance
Physics (JavaScript)
Physics
Scripting Name:Insight.Physics
物理相关类。
- 在 Web SDK 中无效
- 注意:洞见 SDK v2.1 版本中去掉了物理引擎的支持,因此在洞见 SDK v2.1 无法使用这些接口。
Properties
gravity
type :Insight.Vector3
设置全局重力加速度。
Static Methods
Raycast
javascript
public static Object Raycast(Insight.Vector3 origin, Insight.Vector3 direction, number distance, number layers);
向空间中发射一条射线,返回第一个与之相交的 collider。
Parameters
- origin : Insight.Vector3 射线起点的世界坐标
- direction : Insight.Vector3 射线的方向
- distance : number 射线长度
- layers : number 用于选择性对一些层忽略射线计算的层遮罩 该方法返回一个 Object,里面有两个属性,isHitted 是个 boolean 类型的返回值,表示是否有碰撞到 collider,rayCastHit 是个 RaycastHit,类型包含了碰撞结果信息。
javascript
public static Object Raycast(Insight.Vector3 origin, Insight.Vector3 direction, RaycastHit raycasthit, number distance, number layers);
javascript
//例子1:点击屏幕,发射基于相机视角的射线,并返回射线的碰撞信息,是否发生碰撞
if (Insight.Input.GetMouseButtonDown(0)) {
var ray = this.camera.screenPointToRay(Insight.Input.mousePosition);
var raycasthit = new Insight.RaycastHit();
var isHitted = Insight.Physics.Raycast(ray.origin, ray.direction, raycasthit, 50, 4294967295);
if (isHitted) {
//do somthing
this.target = raycasthit.transform.gameObject;
}
}
javascript
// 或例子2
if(Insight.Input.GetMouseButtonDown(0))
{
var m_pos = Insight.Input.mousePosition;
var ray = this.camera.screenPointToRay(m_pos);
var castRet = Insight.Physics.Raycast( ray.origin, ray.direction, 50, 4294967295 );
if(castRet.isHitted)
{
Insight.Debug.Log( "lua test hitted : " .. castRet.rayCastHit.transform.toString() );
}
}