簡體   English   中英

將iTween與物理加速相結合

[英]Combine iTween with physics acceleration

我正在嘗試將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()完全無效。 如何將兩者結合起來?

我沒有在此解決方案中使用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是生成彎曲路徑的空游戲對象的數組(順序很重要)。 嘗試將此代碼附加到球體上。 讓我知道, 在這里 ,如果有任何懷疑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM