- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在开发一款在 Unity 中使用点击移动的游戏。当我点击 map 上的一个点时,我将鼠标的点击设置为目的地,然后使用游戏对象上的刚体通过 RigidBody.MovePosition() 移动它。当我这样做时,当游戏对象到达目的地时,我会出现很多闪烁。任何帮助表示赞赏。谢谢。
// COMPONENTS
Rigidbody rigidBody;
// MOVEMENT
Vector3 destination;
Vector3 direction;
// Use this for initialization
void Start()
{
rigidBody = GetComponent<Rigidbody>();
destination = transform.position;
}
// Update is called once per frame
void Update()
{
DetectInput();
}
void FixedUpdate()
{
MoveControlledPlayer();
}
void MoveControlledPlayer()
{
transform.LookAt(destination);
Vector3 direction = (destination - transform.position).normalized;
rigidBody.MovePosition(transform.position + direction * 5 * Time.deltaTime);
}
void DetectInput()
{
if (Input.GetMouseButton(0))
{
SetDestination();
}
}
void SetDestination()
{
if (!EventSystem.current.IsPointerOverGameObject())
{
Plane field = new Plane(Vector3.up, transform.position);
Ray ray;
float point = 0;
ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (field.Raycast(ray, out point))
destination = ray.GetPoint(point);
}
}
最佳答案
我用临时关节做这些 Action 。它们非常准确/可配置/可嵌入。
在 2D 中,我使用 DistanceJoint2D
控制刚体点之间或刚体点与世界点之间的距离。在 3D 中你可以使用 SpringJoint
或 ConfigurableJoint
.
然后只需调整距离,基本上与您现在每帧移动的方式相同(在 FixedUpdate
上)。
关于c# - Unity3D RigidBody MovePosition 闪烁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41383105/
我目前正在开发一款在 Unity 中使用点击移动的游戏。当我点击 map 上的一个点时,我将鼠标的点击设置为目的地,然后使用游戏对象上的刚体通过 RigidBody.MovePosition() 移动
我是 Unity 的新手。虽然我正在关注“Catch Game”的视频教程。我使用的是 unity 4.3.3 版本。 这是我的代码。 using UnityEngine; using System.
我想设置玩家对象的速度以将其 x 位置增加 2 倍,并且我还想设置实体对象的速度以将其 x 位置增加 3 倍。 但是,在每个刻度结束时,玩家和实体对象的 x 位置都会增加 5,并且同时移动。 我非常感
问题:如果我让运动正常工作,则不会检测到碰撞网格。如果我检测到碰撞网格,则运动无法正常工作。 项目简介:我有一个 3D 环境,其中包含不可移动的对象(带有对撞机网格)和一个可移动的游戏对象(带有 x2
我是一名优秀的程序员,十分优秀!