我试图把iTween和物理加速结合起来。

这里是路径的顶部视图。棕色矩形是由一个立方体GameObject制作的,并附加了一个iTweenPath组件(4个节点)。路径名为Path1。在左边,有一个球体(可能看不清楚),它作为演员,附加了RigidBody (质量= 3),几乎没有放在地板上的单位。
然后,我给Actor分配了一个脚本,即:
void OnCollisionEnter(Collision collison) {
iTween.MoveTo(gameObject, iTween.Hash("path", iTweenPath.GetPath("Path1"), "time", 5));
}当球由于重力而落地时,它会触发iTween.MoveTo()。上述工作如预期的那样。
但是,我想结合我的物理加速脚本,即:
void FixedUpdate() {
rigidbody.AddForce(transform.forward * 5.0f, ForceMode.Acceleration);
}然而,iTween统治运动,使AddForce()在FixedUpdate()中毫无作用。我怎么才能把这两者结合起来?
发布于 2014-02-06 07:23:03
我没有在这个解决方案中使用iTween。只是使用数组中空游戏对象的数量来生成路径。路径中更多的游戏对象使路径平滑。
using UnityEngine;
using System.Collections;
public class RollBall : MonoBehaviour
{
public float speed=10;
public Transform target;
public Transform[] pathPoints;
public int c;
void Start ()
{
c=0;
}
void Update ()
{
target.position=new Vector3(transform.position.x,transform.position.y+1f,transform.transform.position.z);
if(target.position.z>=pathPoints[c].position.z)
{
if(c<pathPoints.Length)
c++;
}
target.LookAt(pathPoints[c]);
if(Input.GetKey(KeyCode.UpArrow))
{
rigidbody.AddForce(target.forward*speed);
}
}
}在这个目标中,是一个空的游戏对象,它和球体一起移动,给球体指明方向。pathPoints是生成曲线路径的空游戏对象数组(序列确实很重要)。尝试将此代码附加到球体上。如果有任何疑问,请告诉我这里。
https://stackoverflow.com/questions/21568178
复制相似问题