Skip to content

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() );
    }
}