我正在创建一个项目,其中我有一个球体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;
}
我希望线条渲染器始终与地面平行,但是源自球体的球体或面。我尝试了很多东西。但还是没有找到解决方案。
答案 0 :(得分:0)
你的问题似乎有点令人困惑,但似乎你想要一个球围绕一条线旋转。球按照自己的意愿旋转,直线相对于球保持不旋转。
如果这是正确的。我建议有两个对象。球,然后是一个空/ invis对象。球旋转并移动,只需通过移动,不旋转就可以取出空物体。将线渲染器放在空对象上,在层次结构中,invis对象是球的父对象。用球物理和bamn滚球移动空物体,响应触摸。
对不起,如果我不好解释。如果你不知道什么时候你在层次结构中的某些东西他们一起移动。