C# 统一-不断改变游戏对象的前进方向?

C# 统一-不断改变游戏对象的前进方向?,c#,unity3d,rotation,C#,Unity3d,Rotation,我正在创建一个项目,其中我有一个球体游戏对象,它的子对象是空的游戏对象。线条渲染器组件附加到此空游戏对象上 我已经制作了球体来观察触摸方向,以便子对象的线渲染器也朝向触摸位置。当球体在一个轴上旋转时,它可以正常工作 但当我对球体施加一个力,它开始在所有轴上旋转,就像一个普通球一样,问题就出现了。但是附加到它的线渲染器会粘附在它的面上,当球体朝下时,线渲染器会进入地面 线条渲染器的代码 using UnityEngine; using System.Collections; public cla

我正在创建一个项目,其中我有一个球体游戏对象,它的子对象是空的游戏对象。线条渲染器组件附加到此空游戏对象上

我已经制作了球体来观察触摸方向,以便子对象的线渲染器也朝向触摸位置。当球体在一个轴上旋转时,它可以正常工作

但当我对球体施加一个力,它开始在所有轴上旋转,就像一个普通球一样,问题就出现了。但是附加到它的线渲染器会粘附在它的面上,当球体朝下时,线渲染器会进入地面

线条渲染器的代码

using UnityEngine;
using System.Collections;

public class LineRenderer : MonoBehaviour {

private LineRenderer lineRenderer;

private Vector3 finalTouchPosition;

// Use this for initialization
void Start () {

    lineRenderer = gameObject.GetComponent<LineRenderer> ();
}



// Update is called once per frame
void Update () {

    Ray ray = new Ray (transform.position, transform.forward);

    RaycastHit hit;

    lineRenderer.SetPosition (0, ray.origin);


    if (Physics.Raycast (ray, out hit)) {
        lineRenderer.SetPosition (1, hit.point);    
    }


}

我希望线渲染器始终与地面平行,但从球体或球体的面开始。我试过很多东西。但是仍然没有找到解决办法。

你的问题似乎有点让人困惑,但似乎你想要一个球绕着一条线旋转。球按自己的意愿旋转,线只与球相对,不旋转

如果这是正确的。我建议有两个对象。球,然后是一个空的/Invi对象。球旋转和移动,只是通过移动而不是旋转的方式将空对象带走。将线渲染器放置在空对象上,并在层次中使Invi对象成为球的父对象。用球和bamn滚动球移动空对象,该球对触摸做出响应

对不起,如果我不善于解释的话。如果你不知道什么时候你在层次结构中为某个事物设置了父对象,它们就会一起移动

if(theTouch.phase == TouchPhase.Moved)
    {

    Vector3 tempTouch = new Vector3(theTouch.position.x ,theTouch.position.y, myCamera.position.y - targetObject.transform.position.y);

    fingerPosition = Camera.main.ScreenToWorldPoint(tempTouch);

    targetObject.transform.LookAt(fingerPosition);

    isRotating = true;

    }