我正在尝试将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()
完全无效。我怎样才能将这两者结合起来?
答案 0 :(得分:1)
我没有在此解决方案中使用iTween。刚刚在数组中使用了多个空的gameobject来生成路径。路径中的更多游戏对象使路径更加顺畅。
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是生成弯曲路径的空游戏对象的数组(序列很重要)。尝试将此代码附加到球体上。如果有任何疑问,请告诉我here。