位置: 编程技术 - 正文
推荐整理分享AddForceAtPosition方法:增加刚体点作用力,希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!
基本语法 1、public void AddForceAtPosition(Vector3 force,Vector3 position);
2、public void AddForceAtPosition(Vector3 force,Vector3 position,ForceMode mode);
其中参数force为扭矩向量,参数position为作用点坐标,参数mode为力的作用方式。
功能说明:此方法用于为参数position增加一个力force,其参考坐标系为世界坐标系,作用方式为mode,默认为ForceMode.Force。此方法与方法AddForce不同,AddForce方法对刚体的施加力时,不会产生扭矩使物体发生旋转,而AddForceAtPosition方法是在某个坐标点对刚体施加力,这样很可能会产生扭矩使刚体产生旋转,具体如下:
1、当力的作用点在刚体重心时,刚体不会发生旋转;
2、当力的作用点不在刚体重心时,由于作用点的扭矩会使刚体发旋转,但是,当作用力的方向经过刚体 的重心坐标时,不发生旋转。
实例演示:下面通过实例演示方法AddForceAtPosition的使用。
using UnityEngine;using System.Collections;
public class AtForceAtPosition_ts : MonoBehaviour { public Rigidbody A,B,C; Vector3 m_force=new Vector3(0.0f,0.0f,.0f); void FixedUpdate() { //当力的作用点在敢提重心时,刚体不发生旋转 A.AddForceAtPosition (m_force, A.transform.position, ForceMode.Force); //当力的作用点不在刚体重心时,由于作用点的扭矩会使刚体发生旋转 B.AddForceAtPosition (m_force, B.transform.position new Vector3 (0.0f, 0.3f, 0.0f), ForceMode.Force); //但是,当力的作用点和刚体重心坐标的差向量与作用力的方向同向时不发生旋转 C.AddForceAtPosition (m_force, C.transform.position new Vector3 (0.0f, 0.3f, 0.0f), ForceMode.Force); Debug.Log ("A的欧拉角:" A.transform.eulerAngles); Debug.Log ("B的欧拉角:" B.transform.eulerAngles); Debug.Log ("C的欧拉角:" C.transform.eulerAngles); } // Use this for initialization void Start () { } // Update is called once per frame void Update () { }}以上来自《UnityAPI解析》陈泉宏编著。
unity3d特效延迟播放的脚本问题 特效很多情况下需要延迟播放,当然你可以直接在特效编辑的时候就有delay的时间设置,但有些时候我们需要自己控制这个时间。比如人物pause的时候,
Unity3d 调用 C++ DLL之 DLL回调Unity3d (C++ DLL回调 C#函数) 上篇Unity3d调用CDLL(Win平台)介绍了简单的Unity3d调用CDLL的方法,但是这样是不够的,这里再讲下通过函数指针让CDLL中回调Unity3d的方式。转自
Unity3D坐标转换 转载自:
标签: AddForceAtPosition方法:增加刚体点作用力
本文链接地址:https://www.jiuchutong.com/biancheng/377195.html 转载请保留说明!上一篇:Python中shutil模块的学习笔记教程(shutil模块 python安装)
下一篇:unity3d特效延迟播放的脚本问题(unity延迟调用函数)
友情链接: 武汉网站建设