ピクミンみたいのなのを作成中・・・①
・まず、すごい初歩的な所から
transform.Translate は衝突のない位置の移動なので、通過点にコライダーがあっても貫通してしまう。
これになぜか引っかかってました…
・キャラ同士がぶつかる、乗り上げることをしないようにするには
レイヤーを設定して、
Edit->Project Settings->Physics 2Dで開き、Layer Collision Matrix
・変数やメソッドをpublic static にしておくと、その世界唯一の物になってどこからでも使えるようになる。世界唯一なので、住所を指定しなくても、名指しだけで使用可能。
http://myoujing.wpblog.jp/2014/06/760/さんより完全コピー
1
2
3
4
5
6
7
8
9
|
public class test1 : MonoBehaviour
{
public static int HealthPoints = 100; //変数
public static void Attack() //メソッド
{
//実行処理をここに書く
}
}
|
この例でいけば、どこの他所のスクリプトからでも
test1.HealthPoints -= 5;
と書くだけで変数HealthPointsは95になるし、
test1.Attack();
と書くだけでAttackメソッドを実行させることができる。
・SendMessageの使い方
public GameObject ○○; メッセージを送りたい所の名前
○○.SendMessage("他のオブシェクトについてる関数名とか");
・ON と OFF のスイッチ
以下のスクリプト、if文の中身を逆さまにしたらずっとtrueだったのでメモ
if (ON == true)
{
if (Input.GetKeyDown (KeyCode.Space))
{
ON = false;
}
}
else
{
if(Input.GetKeyDown (KeyCode.Space))
{
ON = true;
}
}
test1.HealthPoints -= 5;
と書くだけで変数HealthPointsは95になるし、
test1.Attack();
と書くだけでAttackメソッドを実行させることができる。
・SendMessageの使い方
public GameObject ○○; メッセージを送りたい所の名前
○○.SendMessage("他のオブシェクトについてる関数名とか");
・ON と OFF のスイッチ
以下のスクリプト、if文の中身を逆さまにしたらずっとtrueだったのでメモ
if (ON == true)
{
if (Input.GetKeyDown (KeyCode.Space))
{
ON = false;
}
}
else
{
if(Input.GetKeyDown (KeyCode.Space))
{
ON = true;
}
}
0 件のコメント:
コメントを投稿