【发布时间】:2014-02-20 10:17:13
【问题描述】:
我正在创建一个项目,其中我有一个球体游戏对象,它有一个空的游戏对象作为孩子。线渲染器组件附加到这个空的游戏对象。
我已经使球体观察触摸方向,以便子对象的线渲染器也面向触摸位置。当球体沿一个轴旋转时,它可以正常工作。
但是当我对球体施加力并且它开始像普通球一样在所有轴上旋转时,就会出现问题。但是附加到它的线渲染器会粘在它的面上,当球体朝下时,线渲染器会进入地面。
线条渲染器代码。
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;
}
我希望线渲染器始终与地面平行,但源自球体或球体的面。我已经尝试了很多东西。但是还没有找到解决办法。
【问题讨论】: