unity脚本_力 c#

创建一个脚本

将代码挂载到物体上

取消物体的重力

运行即向z轴运动

加力之后 是否停止是由阻力影响 如果阻力为零 则会一直运动

如果希望就算有阻力也让物体一直动就将加力代码放在Update函数里

using UnityEngine;
public class Power : MonoBehaviour{
    Rigidbody rigidBody;
    void Start(){
        #region 刚体自带力方法

        #endregion
        //1.首先获取刚体组件
        rigidBody = this.GetComponent<Rigidbody>();
        //2.加直线力 相对世界坐标 z轴正方向加力
        rigidBody.AddForce(Vector3.forward * 10);
        //      相对本地坐标
        rigidBody.AddRelativeForce(Vector3.forward * 3);
        //      相对世界坐标下 让对象 相对本地坐标移动
        rigidBody.AddForce(this.transform.forward * 10);
        //3.加旋转力 相对世界坐标 y轴旋转
        rigidBody.AddTorque(Vector3.up * 10);
        //      相对本地坐标
        rigidBody.AddRelativeTorque(Vector3.up * 3);
        //4.直接改变速度
        //这个速度方向 是相对于 世界坐标系的
        //如果要直接通过改变速度 让其移动 一定要注意
        rigidBody.velocity = Vector3.forward * 10;
        //5.模拟爆炸效果
        //模拟爆炸的力 一定是所有希望产生爆炸效果影响的对象
        //都需要得到他们的刚体 来执行这个方法 才能有效果
        rigidBody.AddExplosionForce(100, Vector3.zero, 10);
    }
}
运行即可在中心(0,0)受到一爆炸力被弹开然后自己受到旋转和向z轴移动的力

【力组件】:在场景物体上添加一个常量力的组件

如果这个物体没有刚体 会自动添加一个带重力的刚体 我们可以取消重力 改变它的旋转力让其旋转

using UnityEngine;
public class Power : MonoBehaviour{
    Rigidbody rigidBody;
    void Start(){
        #region 刚体自带力方法

        #endregion
        //1.首先获取刚体组件
        rigidBody = this.GetComponent<Rigidbody>();
        //2.加直线力 相对世界坐标 z轴正方向加力
        rigidBody.AddForce(Vector3.forward * 10);
        //      相对本地坐标
        rigidBody.AddRelativeForce(Vector3.forward * 3);
        //      相对世界坐标下 让对象 相对本地坐标移动
        rigidBody.AddForce(this.transform.forward * 10);
        //3.加旋转力 相对世界坐标 y轴旋转
        rigidBody.AddTorque(Vector3.up * 10);
        //      相对本地坐标
        rigidBody.AddRelativeTorque(Vector3.up * 3);
        //4.直接改变速度
        //这个速度方向 是相对于 世界坐标系的
        //如果要直接通过改变速度 让其移动 一定要注意
        rigidBody.velocity = Vector3.forward * 10;
        //5.模拟爆炸效果
        //模拟爆炸的力 一定是所有希望产生爆炸效果影响的对象
        //都需要得到他们的刚体 来执行这个方法 才能有效果
        rigidBody.AddExplosionForce(100, Vector3.zero, 10);
        #region 力的模式
        #endregion
        //第二个参数 力的模式: 计算方式不同 导致移动速度不同
        //Acceleration : 给物体增加一个持续的加速度,忽略其质量
        rigidBody.AddForce(Vector3.forward * 10,ForceMode.Acceleration);
        //Force : 给物体增加一个持续的力,和质量有关
        rigidBody.AddForce(Vector3.forward * 10, ForceMode.Force);
        //Impulse : 给物体添加一个瞬间的力,与物体的质量有关,忽略时间 默认为1
        rigidBody.AddForce(Vector3.forward * 10,ForceMode.Impulse);
        //VelocityChange : 给物体添加一个瞬时速度,忽略质量
        rigidBody.AddForce(Vector3.forward * 10,ForceMode.VelocityChange);
        #region 力组件 对物体添加组件Constant Force

        #endregion
    }
    private void Update(){
        #region 刚体的休眠

        #endregion
        //获取刚体是否处于休眠状态 如果是
        if (rigidBody.IsSleeping())
            rigidBody.WakeUp();//就唤醒
    } 
}
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/145468.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

头脑风暴之约瑟夫环问题

一 问题的引入 约瑟夫问题的源头完全可以命名为“自杀游戏”。本着和谐友爱和追求本质的目的&#xff0c;可以把问题描述如下&#xff1a; 现有n个人围成一桌坐下&#xff0c;编号从1到n&#xff0c;从编号为1的人开始报数。报数也从1开始&#xff0c;报到m人离席&#xff0c…

Java面试——RPC协议

涉及到分布式方面知识的话&#xff0c;RPC协议是逃不开的&#xff0c;所以在此记录一下RPC协议。 什么是RPC协议 RPC协议&#xff08;Remote Procedure Call&#xff09;远程过程调用&#xff0c;简单的来说&#xff1a;RPC协议是一种通过网络从远程计算机程序获取服务的协议…

cocos creator 小游戏允许他人访问本地项目

需求背景&#xff1a; 发版成微信小游戏前&#xff0c;需要策划介入体验。不上传微信体验版本 实现&#xff1a; 1.发布平台选择web桌面端 2.构建完成后点击运行从浏览器上获取本地的运行地址 3.winR ——》 cmd 控制台 输入 ipconfig 找到IPv4地址&#xff0c;替换本地部分 …

3BHE003855R0001 UNS2882A 用于嵌入式/工业用途的人工智能盒

3BHE003855R0001 UNS2882A 用于嵌入式/工业用途的人工智能盒. 无风扇iBOX 1200系列包括型号iBOX-1265 UE/iBOX-1245 UE/iBOX-1215 UE&#xff0c;由第12代英特尔酷睿i7/i5/i3处理器(Alder Lake-P)提供动力&#xff0c;通过英特尔Iris Xe显卡和两个DDR4 3200MHz SO-DIMM提供高达…

Windows环境如何使用Zblog+cpoalr搭建个人网站并远程访问?

文章目录 1. 前言2. Z-blog网站搭建2.1 XAMPP环境设置2.2 Z-blog安装2.3 Z-blog网页测试2.4 Cpolar安装和注册 3. 本地网页发布3.1. Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 1. 前言 想要成为一个合格的技术宅或程序员&#xff0c;自己搭建网站制作网页是绕…

设计模式:模板模式(C#、JAVA、JavaScript、C++、Python、Go、PHP)

简介&#xff1a; 模板模式&#xff0c;它是一种行为型设计模式&#xff0c;它定义了一个操作中的算法的框架&#xff0c;将一些步骤延迟到子类中实现&#xff0c;使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 通俗地说&#xff0c;模板模式就是将某一行…

【ARM裸机】ARM入门

1.ARM成长史 2.ARM的商业模式和生态系统 ARM只设计CPU&#xff0c;但是不生产CPU 3.为什么使用三星&#xff1a;S5PV210 4.各种版本号 0. ARM和Cortex Cortex就是ARM公司一个系列处理器的名称。比如英特尔旗下处理器有酷睿&#xff0c;奔腾&#xff0c;赛扬。ARM在最初的处理器…

程序包org.apache.ibatis.mapping不存在 符号找不到

找不到符号 符号: 类 Cursor和程序包org.apache.ibatis.mapping不存在 在idea中没有错误&#xff0c;但是在linux编辑时报了这两个错误&#xff0c;之前有遇见过符号找不到的问题&#xff0c; 当时的问题是编译的import xxx.xxx.xxx.* 识别不成功过&#xff0c;将*改为…

网络协议--ICMP:Internet控制报文协议

6.1 引言 ICMP经常被认为是IP层的一个组成部分。它传递差错报文以及其他需要注意的信息。ICMP报文通常被IP层或更高层协议&#xff08;TCP或UDP&#xff09;使用。一些ICMP报文把差错报文返回给用户进程。 ICMP报文是在IP数据报内部被传输的&#xff0c;如图6-1所示。 ICMP…

卷积神经网络CNN学习笔记-MaxPool2D函数解析

目录 1.函数签名:2.学习中的疑问3.代码 1.函数签名: torch.nn.MaxPool2d(kernel_size, strideNone, padding0, dilation1, return_indicesFalse, ceil_modeFalse) 2.学习中的疑问 Q:使用MaxPool2D池化时,当卷积核移动到某位置,该卷积核覆盖区域超过了输入尺寸时,MaxPool2D会…

为什么学完了 C#觉得自己什么都干不了?

为什么学完了 C#觉得自己什么都干不了&#xff1f; 俺一向的观点&#xff1a;&#xff08;1&#xff09;学跟干是两码事。学&#xff0c;你要往外掏钱或时间或两个都得掏。干&#xff0c;是你从别人兜里掏钱。&#xff08;2&#xff09;如果没有干的需求&#xff0c;那么可以啥…

小白也会的校园网宽带拨号自动重连设置

开始菜单搜索“任务计划程序”&#xff1a;我这个开始菜单和你们的不太一样&#xff0c;用了StartAllBack设置的&#xff0c;总之能找到这个程序就行了 提示&#xff1a;可以按下“Win R”&#xff0c;打开“运行”&#xff0c;输入taskschd.msc来打开任务计划程序 点击“任务…