2016-07-27 15 views
0

まあ、私は統一3dとCシャープに新しいです。私はspehereオブジェクトを回転させるスクリプトを試していました。しかし、それは動作していません。スクリプトが球体を回転させないのはなぜですか?

私はyoutubeのビデオをフォローしていました。このコードは彼のために働いた。しかし、私の場合、それは動作していません。

トランスフォームオブジェクトを追加しました。

using UnityEngine; 
using System.Collections; 

public class cubescript : MonoBehaviour { 
    public Transform sphereTransform; 

    // Use this for initialization 
    void Start() { 
     sphereTransform.parent = transform; 


    } 

    // Update is called once per frame 
    void Update() { 
     transform.eulerAngles = new Vector3 (0, 180*Time.deltaTime, 0); 
    } 
} 

一種の作業が、2.981877から3 Y回転で立ち往生...そしてキューブの周りに回転していない...

+0

球をキューブの周りに回転しますか? –

+0

yeah @MiladQasemi –

+0

このスクリプトをキューブに添付しましたか? –

答えて

1

問題は、あなたが回転しようとしているということですが、eulerAnglesは唯一絶対角度に設定しています(現在のフレーム角度にアングルを追加する場合は、Rotateを使用します)。

transform.eulerAnglesを使用すると、角度の変更を180 * Time.deltaTimeが返すフレームに設定します。これは、実行しているFPSの数に応じて変わります。

transform.Rotateを使用すると、現在のアングルフレームに新しいアングル変更が追加されます。フレーム1 =(0,0,0)、フレーム2 =(0,10,0)、フレーム3 =(0,20,0)のように、10度だけ増分したいとします。

eulerAnglesアブソリュートアングルを設定しているので、常に030,0を取得します。現在のアングルには、Rotateが追加されます。この

transform.Rotate(new Vector3 (0, 180*Time.deltaTime, 0)); 

変更この

transform.eulerAngles = new Vector3 (0, 180*Time.deltaTime, 0); 

これはeulerAngleRotate

0

としての公式Unityのドキュメントであるあなたが設定されている、あなたはtransform.eulerAnglesを設定すると、別の答えで述べて絶対回転。 transform.Rotate()を使用することもできますが、Time.timeを使用して線形回転を確実に行うこともできます。transform.eulerAngles = new Vector3(0, 180*Time.time, 0);

+0

あなたがあなたの追加で既存の答えを編集した方が良いでしょう! – Gusdor

関連する問題