[英]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.