動く床を作りたい
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);
}
}
{
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();
}
}
}
{
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();
で、再生。
収束エフェクトの作り方
収束エフィクト(チャージしているような)
- ShapeをSphere(球)に
- Emit from ShellをONに。球面からパーティクルが出るようになる
- Start SpeedをRadiusのマイナスの値にする。マイナスの数字を入れることによって逆方向に。この場合球の中心に
- Rateを100に(パーティクル発生頻度)
- Render ModeをStretched Billboard(形状を変化させることができる)
- Length Scaleを0.5に。縦長にすることができる
0 件のコメント:
コメントを投稿