c# - 给游戏对象速度/速度并转换向量点
问题描述
我目前正在使用 c# 脚本统一开发游戏,但有一个小问题。我试图给我的一个游戏对象一个恒定的速度/速度,而不受其他重力、阻力或除速度之外的任何其他类型的物理特性的影响。我查看了 Unity 手册以找到任何可以帮助我解决此问题的类,我似乎找到了一个可以完成这项工作的类: https ://docs.unity3d.com/ScriptReference/Rigidbody-velocity.html
我对其进行了编辑以使其适合我的游戏,因为这是一个不受玩家影响的游戏对象,但每次我在测试屏幕中运行游戏时都没有任何反应(对象保持静态)。我想知道是否有人知道 Unity 或 C# 中处理此问题的类,或者通常知道我如何实现这一点。是让它同时影响屏幕上出现的所有游戏对象,还是只影响少数几个?其次,我还想知道如何将刚体速度向量 2 从世界点转换为屏幕点?
非常感谢。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BallSpeed : MonoBehaviour
{
public Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
}
void Update()
{
rb.velocity = new Vector2(0, 100);
}
}
Expected result: The game object moves upwards with a speed of 100.
Actual result: Nothing happens.
解决方案
请务必检查您Rigidbody2D
是否在检查器中设置为动态,因为运动学和静态刚体没有物理。如果您不希望它是动态的,只需使用它rb.Translate()
。但是,永远不要转换静态刚体,因为它会与引擎对其进行的优化相混淆,而是使用运动学刚体进行转换。
推荐阅读
- terraform - 为什么 terraform 创建不包含在 --target 参数中的资源?
- php - 嵌套 PDO 查询
- java - 下载 PDF 并使用 Acrobat Reader 打开
- sql - 在 Node.js 中使用 Web 服务并批量插入到 Oracle 数据库
- python - 允许线程和主线程之间的类事件通信
- c++ - 是否可以返回具有自定义排序功能的关联容器?
- bash - Bash:如何将文件重命名为包含正斜杠的字符串?
- python-3.x - 在烧瓶中使用 pdfkit 生成 pdf - 重新加载页面错误
- python - Python 新手寻求帮助
- javascript - 在 React.js 中将 fetch 对象克隆为未定义对象的问题