【发布时间】:2019-01-30 16:34:38
【问题描述】:
我目前正在使用 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.
【问题讨论】:
-
您能否提供相关对象的屏幕截图以及您的控制台中可能出现的任何内容? (基本上,只是你的场景在运行。)
-
您使用的是
Vector2,因此您可能应该使用Rigidbody2D,而不是Rigidbody。 -
选中刚体上的“Is Kinematic”复选框,以离开它的速度移动
标签: c# unity3d game-engine game-physics