zoukankan      html  css  js  c++  java
  • PhysX

    PhysX

     1、施加力:

     1         if(GUILayout.Button("普通力‹",GUILayout.Height(50)))
     2         {
     3             //施加一个力,X轴方向力度为1000,Y轴方向力度为1000
     4             addFrceObj.rigidbody.AddForce (1000, 0, 1000);
     5         }
     6         
     7         if(GUILayout.Button("位置力",GUILayout.Height(50)))
     8         {
     9             //施加一个位置力,物体将会朝向这个位置发力移动,力的模式为冲击力。
    10             Vector3 force = cubeObj.transform.position - addPosObj.transform.position;
    11             addPosObj.rigidbody.AddForceAtPosition(force,addPosObj.transform.position,ForceMode.Impulse);
    12         }
    View Code

     2、刚体的碰撞回调:

     3、What is Kinematic Rigidbodies?

      A Kinematic Rigidbody is a Rigidbody that has the isKinematic option enabled. Kinematic Rigidbodies are not affected by forces, gravity or collisions. They are driven explicitly by setting the position and rotation of the Transform or animating them, yet they can interact with other non-Kinematic Rigidbodies.

      Kinematic Rigidbodies correctly wake up other Rigidbodies when they collide with them, and they apply friction to Rigidbodies placed on top of them.

     4、What is Static Collider?

      A Static Collider is a GameObject that has a Collider but not a Rigidbody. Static Colliders are used for level geometry which always stays at the same place and never moves around. You can add a Mesh Collider to your already existing graphical meshes (even better use the Import Settings Generate Colliders check box), or you can use one of the other Collider types.

     5、The Physics Material is used to adjust friction and bouncing effects of colliding objects.

      

     6、Character Controller

      The Character Controller is mainly used for third-person or first-person player control that does not make use of Rigidbody physics.

      Character Controller组件用于帮助控制没有RigidBody的组件。

     7、Character Controller和RigidBody互斥,同一GameObject只能应用其一。

     8、SmoothFollow.js是内置Camera脚本组件,可以让某个Camera紧跟某个对象,实现第三人称Camera。

      

     9、使用Ray检测碰撞

    1         //??????0??????
    2         Ray ray = new Ray(Vector3.zero, transform.position);
    3         //?????????
    4         RaycastHit hit;
    5         Physics.Raycast(ray, out hit, 100);
    6         //?????????????????????????
    7         Debug.DrawLine(ray.origin, hit.point);
    View Code

      10、关节必须依赖于刚体组件。

     11、Triger与Collision分布图:

     12、动态添加关节组件:

     1         if(GUILayout.Button("添加链条关节"))
     2         {
     3             
     4             ResetJoint();
     5             jointComponent = gameObject.AddComponent("HingeJoint");
     6             HingeJoint hjoint = (HingeJoint)jointComponent;
     7             connectedObj.rigidbody.useGravity = true;
     8             hjoint.connectedBody = connectedObj.rigidbody;
     9         }
    10         
    11         if(GUILayout.Button("添加固定关节"))
    12         {
    13             ResetJoint();
    14             jointComponent =gameObject.AddComponent("FixedJoint");
    15             FixedJoint fjoint = (FixedJoint)jointComponent;
    16             connectedObj.rigidbody.useGravity = true;
    17             fjoint.connectedBody = connectedObj.rigidbody;
    18         }
    View Code
  • 相关阅读:
    谈执着
    SQL表自连接用法
    Mysql group by 排序问题
    php自动生成mysql的触发代码。
    XSS CSRF 攻击
    [微信开发利器]微信内移动前端开发抓包调试工具fiddler使用教程
    微信JS-SDK]微信公众号JS开发之卡券领取功能详解
    优化与重构的思考
    c语言 13
    c语言 13
  • 原文地址:https://www.cnblogs.com/tekkaman/p/3537585.html
Copyright © 2011-2022 走看看