2015年8月1日土曜日

学んだことをメモするだけ


動く床を作りたい

public class AutoMoveScript : MonoBehaviour 
{    
    Vector3 BasePosition;

    private float offset = 30f;

    // Use this for initialization
    void Start () 
    {
        BasePosition = transform.position;
    }
    
    // Update is called once per frame
    void Update () 
    {
        //sinカーブ 掛ける値を大きくすると周期が短くなり、小さくすると周期が長くなる。
        transform.position = BasePosition + Vector3.forward * Mathf.Sin(Time.time + offset);
    }
}

最初Update内を、transform.position = transform.position + ・・・

ってやってたが、移動する床の中心がズレた。それもそのはず、自分の座標に足されていくからそうなるよねー



セーブポイント(チェックポイント)を作りたい

public class CheckPointCS : MonoBehaviour 
{
    public GameObject target;
    public ParticleSystem savefin;
    public ParticleSystem respawn;

    Vector3 checkposition;

    private bool checkable = false;

    // Use this for initialization
    void Start () 
    {
    
    }
    
    // Update is called once per frame
    void Update () 
    {
        if (checkable
        {
            if (Input.GetKeyDown ("1")) 
            {
                target.transform.position = checkposition;

                respawn.Play();
            }
        }
    
    }

    void OnTriggerEnter(Collider collider)
    {
        if(collider.tag == "Player")
        {
            checkable = true;

            checkposition = transform.position;
            Debug.Log("getcheck");

            savefin.Play();
        }
    }
}

プレイヤーがセーブポイントのトリガーにあたったら、その座標を取得。1のキーが押されたら、取得した座標に出現する。
 おまけでパーティクルを使って、セーブポイントに着いた時、セーブポイントに出現した時を演出


パーティクル

スクリプトから再生

public ParticleSystem 変数名;
で、パーティクルを保持

変数名.Play();
で、再生。

収束エフェクトの作り方

収束エフィクト(チャージしているような)
  1. ShapeをSphere(球)に
  2. Emit from ShellをONに。球面からパーティクルが出るようになる
  3. Start SpeedをRadiusのマイナスの値にする。マイナスの数字を入れることによって逆方向に。この場合球の中心に
  4. Rateを100に(パーティクル発生頻度)
  5. Render ModeをStretched Billboard(形状を変化させることができる)
  6. Length Scaleを0.5に。縦長にすることができる

0 件のコメント:

コメントを投稿