Unity中的物体移动-Rigidbody方法

为游戏对象添加刚体Rigidbody组件后,通过设置velocity和调用AddForce方法的方式可实现位移。

首先需要在开始方法中获取刚体组件

rigid = GetComponent<Rigidbody> ();

1. velocity

float input_H = Input.GetAxisRaw ("Horizontal");
float input_V = Input.GetAxisRaw ("Vertical");
Vector3 v = new Vector3 (input_H, 0, input_V);
v = v.normalized;
v = v * speed;
rigid.velocity = v;

2. AddForce 给物体一个力,物体开始运动,例如发射子弹、高尔夫球、火箭发射

rigid.AddForce (transform.forward*thrust, ForceMode.Impulse);

上述代码均位于FixedUpdate中

时间: 2024-08-07 18:47:20

Unity中的物体移动-Rigidbody方法的相关文章

Unity中Instantiate物体失效问题

才开始学Unity,开始总是这样用Instantiate函数: GameObject temp = (GameObject)Instantiate(bulletSource, transform.position, transform.rotation); 然后该类中定义一个共有变量如下: public GameObject bulletSource; 在面板上先将预设体托到Hierarchy处,从该处再把对应的Object托到类的共有变量上. 开始这样是没有问题的,但是当该物体在某个时间销毁后

Unity 中实用的 C# 扩展方法

Unity 内置组件基本没有可以继承的.某些比较常用但现有 API 没有定义的功能,我们可以通过 C# 的扩展类方法来实现(注意一点,扩展方法对于值类型传递的不是引用,所以无法修改原对象.并且传递体积较大的值类型可能造成性能问题).下面是一些比较实用的扩展方法,这些扩展方法的实现很多使用了 C# 的委托,关于委托可以参考这里:C# 中的 delegate, Lambda 和 event. 扩展 Transform 每一个 GameObject 都含有一个 Transform 组件(在 UGUI

Unity中的物体移动-Transform.Translate

Transform.Translate通过设置下一步移动的矢量方向和大小进行移动. 有两种移动方式: 1.ADWS控制游戏对象上下左右移动,不涉及旋转: 2.AD通过旋转控制方向,WS控制前后移动,也可以实现受控位移. 无论哪种方式,首先都要获取键盘响应,可以通过Input.GetKey获取,也可以通过Input.GetAxisRaw获取. 第一种方式下的代码如下: float input_H = Input.GetAxisRaw("Horizontal"); //获取X方向的移动方向

Unity中UI界面颤抖解决方法

将Render Mode中属性改为Screen Space - Camera 摄像机挂在Canvas属性下会出现UI界面颤抖的效果. UI界面颤抖解决方式:将Render Mode中属性改为Screen Space - Overlay,如下图所示:

unity中让物体移动到鼠标点击位置(单击移动和双击暂停移动)

private bool IsMove;//移动 //鼠标双击的参数(第一种方式的参数) private float delay = 0.5f; private float firstClickTime = 0; private bool oneClick = false; //点击了第一下 //双击(第二种方式的参数) private float endtime = 0; private float Doubletime = 0.5f; //响应时间 public void Start(Gam

如何在Unity中实现物体的二段跳

//第一次跳 void Jump() { //判断是否在地面,如果是在地面允许跳 if (m_isOnGround) { m_rigidbody.drag = 5f; //bool类型,按space键跳跃,返回bool类型 if (m_jump) { //bool类型,判断跳跃状态 if (is_jump) { //跳跃受力 m_rigidbody.drag = 0f; m_rigidbody.velocity = new Vector3(m_rigidbody.velocity.x, 0f,

unity中三种调用其他脚本函数的方法

第一种,被调用脚本函数为static类型,调用时直接用  脚本名.函数名().很不实用-- 第二种,GameObject.Find("脚本所在物体名").SendMessage("函数名");  此种方法可以调用public和private类型函数 第三种,GameObject.Find("脚本所在物体名").GetComponent<脚本名>().函数名();此种方法只可以调用public类型函数 unity中三种调用其他脚本函数的

用体渲染的方法在Unity中渲染云

最近在知乎上看到一篇文章讲云层的渲染(https://zhuanlan.zhihu.com/p/34836881?utm_medium=social&utm_source=qq) 原文简单的讲了噪声生成云体的办法,以及一个光照模型. 看了之后很感兴趣,加上本科毕设做的就是体渲染,于是打算在unity里山寨一个出来. 原原文(知乎上的文章引用的文章)是2015年地平线黎明时分制作团队的一个talk(http://advances.realtimerendering.com/s2015/The%20

标记由物联网中的物体产生的原始数据的方法及系统

本发明公开涉及标记由物联网中的物体产生的原始数据的方法及系统.所述方法包括:包括:对获得的Web消息进行相关性检测以获得与各种事件相关的Web消息:获取所述相关的Web消息所包含的地址信息:基于所获得的地址信息确定与所述各种事件接近的物体:以及使用所述相关的Web消息的至少部分内容作为元数据,标记由所确定的接近物体产生的原始数据.通过使用本发明,使得可以给人类难以理解的来自各种各样物体的原始数据添加自然语言的元数据,以便可以使用自然语言来进行检索和进行数据挖掘. 技术领域 [0001] 本发明公