首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >手指触摸和拖动旋转三维球-统一3D

手指触摸和拖动旋转三维球-统一3D
EN

Stack Overflow用户
提问于 2018-09-21 11:41:25
回答 1查看 821关注 0票数 0

我的3d球一直在向前移动,所以我想给这个加号球员X旋转,这个游戏玩家在屏幕上水平拖动球,所以对于这个水平移动,我想给Z旋转。

为了达到我的愿望,我制作了球的父母和孩子的游戏对象,其中父母游戏对象只包含对撞机和刚体,这将做实际的物理运动。另一方面,子游戏对象只包含网格渲染器,这将做愿望旋转。

下面的图片让您更好地了解我的结构:

鲍尔家长:

球童:

为了使球网像母物理球一样旋转,我编写了以下代码:

代码语言:javascript
复制
public class BallMeshRolling : MonoBehaviour
{
     private Vector3 ballLastPosition;


void Start ()
{
    ballLastPosition = transform.parent.position;
}

void Update ()
{

    //implementation-1
    //float speed = Vector3.Distance (transform.parent.position, ballLastPosition) * 30f;
    //transform.RotateAround (transform.position, Vector3.right, speed);

    //implementation-2
    //Vector3 differenceInPosition = (transform.parent.position - ballLastPosition).normalized;
    //transform.Rotate (differenceInPosition * 10f);

    //implementation-3
    Vector3 differenceInPosition = (transform.parent.position - ballLastPosition).normalized * 50f; 
    Quaternion rotation = Quaternion.LookRotation(differenceInPosition);
    transform.rotation = rotation;

    ballLastPosition = transform.parent.position;
}
}

但上述任何一种方法都不能正常工作,所以我希望你方能给我一些更好的建议。

编辑:--总的来说,我正试图实现这样的目标:迎头赶上-凯切普-高分1274

EN

回答 1

Stack Overflow用户

发布于 2018-09-22 18:03:19

有一个教程系列的团结,关于滚动和移动的三维球,可以帮助你找到你的问题的基础。希望能帮上忙。

统一教程中的滚珠教程

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52443000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档