簡體   English   中英

團結-不斷改變游戲對象的前進方向?

[英]Unity - Continuously change the forward direction of game object?

我正在創建一個項目,其中有一個球體GameObject,其中的子對象為空游戲對象。 線條渲染器組件已附加到此空游戲對象。

我制作了球體來查看觸摸方向,以便子對象的線條渲染器也面向觸摸位置。 當球體沿一個軸旋轉時,它可以正常工作。

但是,當我向球體施加力並且像普通球一樣開始在所有軸上旋轉時,就會出現問題。 但是連接到它的線條渲染器粘貼在其表面上,並且當球體朝下時,線條渲染器進入地面。

Line Renderer的代碼。

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);    
    }


}

}

觸摸旋轉對象的代碼。

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;

    }

我希望線渲染器始終與地面平行,但源於球體或球體的面。 我已經嘗試了很多東西。 但是仍然沒有找到解決方案。

您的問題似乎有點令人困惑,但似乎您希望球繞直線旋轉。 球按照自己的意願旋轉,並且直線僅相對於球保持不旋轉。

如果正確的話。 我建議有兩個對象。 球,然后是一個空/隱形物體。 球旋轉並移動,只是通過移動來帶走空物體,不旋轉。 將線條渲染器放在空對象上,然后在層次結構中將invis對象作為球的父對象。 用球物理原理和空球移動空物體,以響應觸摸。

對不起,如果我不好講。 而且,如果您不知道何時將層次結構中的某項作為父項,它們會一起移動。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM