スクリプトを更新したのに、InspectorViewの変数が増えない
プログラムが間違っていてビルドエラーが出ている可能性が高いです。
エディタ上でbuildしてみましょう。
{}の対応が間違っていないか、全角スペースが入っているかなど、確認してみましょう
//4行目を上書き(クラス名が変わっていたら上書き不要です
public class Player : MonoBehaviour {
//6行目(クラス始まってすぐ)に下記2行を追加
Animator animator;
float PlayerSpeed= 0.03f;
//11行目(Startの中)に下記1行を追加
animator = GetComponent <Animator> ();
//16行目(Updateの中)に下記を追加
//上下左右の移動
if (Input.GetKey (KeyCode.RightArrow)) {
transform.Translate (transform.right *PlayerSpeed);
}
if (Input.GetKey (KeyCode.LeftArrow)) {
transform.Translate (transform.right *-PlayerSpeed);
}
if (Input.GetKey (KeyCode.UpArrow)) {
transform.Translate (transform.up*PlayerSpeed);
}
if (Input.GetKey (KeyCode.DownArrow)) {
transform.Translate (transform.up *-PlayerSpeed);
}
//上下左右を押した瞬間にアニメーション変更
//左右を押した時は、scaleを使って画像を左右に反転させています
if (Input.GetKeyDown (KeyCode.UpArrow)) {
animator.Play ("Chara_move");
}
if (Input.GetKeyDown (KeyCode.DownArrow)) {
animator.Play ("Chara_move");
}
if (Input.GetKeyDown (KeyCode.RightArrow)) {
animator.Play ("Chara_move");
Vector3 s = transform.localScale;
s.x = 1;
transform.localScale = s;
}
if (Input.GetKeyDown (KeyCode.LeftArrow)) {
animator.Play ("Chara_move");
Vector3 s = transform.localScale;
s.x = -1;
transform.localScale = s;
}
//上下左右キーを離したらidleに戻る
if (Input.GetKeyUp (KeyCode.UpArrow) ||
Input.GetKeyUp (KeyCode.DownArrow) ||
Input.GetKeyUp (KeyCode.RightArrow) ||
Input.GetKeyUp (KeyCode.LeftArrow)) {
animator.Play ("Chara_idle");
}
//スペースキーを押したら、damaged状態に
if (Input.GetKeyDown(KeyCode.Space)) {
animator.Play ("Chara_damaged");
}
//4行目を上書き(クラス名が変わっていたら上書き不要です
public class Enemy : MonoBehaviour {
//6行目(クラス始まってすぐ)に下記2行を追加
Animator animator;
GameObject player;
float EnemySpeed= 0.01f;
//11行目(Startの中)に下記3行を追加
animator = GetComponent <Animator> ();
animator.Play ("Chara_move");
player = GameObject.Find("Player");
//17行目(Updateの中)に下記を追加
float px, py, ex, ey;
px = player.transform.localPosition.x;
py = player.transform.localPosition.y;
ex = transform.localPosition.x;
ey = transform.localPosition.y;
//playerの座標と自分の座標を比較して、より近づくように動く
if (ex < px) {
transform.Translate (transform.right * EnemySpeed);
Vector3 s =transform.localScale;
s.x = 1;
transform.localScale = s;
} else {
transform.Translate (transform.right * -EnemySpeed);
Vector3 s =transform.localScale;
s.x = -1;
transform.localScale = s;
}
if (ey < py) {
transform.Translate (transform.up * EnemySpeed);
} else {
transform.Translate (transform.up * -EnemySpeed);
}
//末尾から2行目、Classが終わる}の内側に追記
void OnCollisionEnter2D(Collision2D collision){
if (collision.gameObject.name == "Enemy") {
animator.Play ("Chara_damaged");
}
}
//末尾から2行目、Classが終わる}の内側に追記
void OnCollisionEnter2D(Collision2D collision){
if (collision.gameObject.name == "Item") {
collision.gameObject.transform.position = new Vector3 ((Random.value - 0.5f) * 1.5f, (Random.value -0.5f) * 1.5f, 0);
transform.position = new Vector3 ((Random.Range(0,2)*2-1)*2.0f, (Random.Range(0,2)*2-1)*2.0f, 0);
EnemySpeed += 0.001f;
}
}
//3行目に追加
using UnityEngine.UI;
//class名が違っていたら上書き
public class GameManager : MonoBehaviour {
//class入った直後
public Text t;
int score=0;
float time=30.0f;
public GameObject EnemyPrefab;
const int ENEMY_NUM = 3;
GameObject[] enemy = new GameObject[ENEMY_NUM];
//Start()の中に下記を足す(for分の<は半角に直すこと)
for(int i=0;i < ENEMY_NUM;i++){
enemy[i]= (GameObject) Instantiate (EnemyPrefab);
Vector3 p= enemy[i].transform.position;
p.x = (Random.Range (0,2)*2 -1 )*2;
p.y = (Random.Range (0,2)*2 -1 )*2;
enemy[i].transform.position = p;
}
//Update()の中に下記を足す
time -= Time.deltaTime;
if (time >= 0.0f) {
t.text = string.Format ("score:{0} time:{1:f1}", score, time);
} else {
t.text = string.Format ("score:{0} finished!", score);
}
//ファイル末尾、下から2行目(classが終わる()の内側)に下記を足す
public void AddScore(int s){
if (time >= 0.0f) {
score += s;
}
}
// animation.Play(ダメージアニメ)の次の行に足します。
GameObject go = GameObject.Find ("GameObject");
if(go != null){
GameManager gm = go.GetComponent<GameManager>();
gm.AddScore(-30);
}
// EnemySpeed+=0.001fの次の行に足します。
GameObject go = GameObject.Find ("GameObject");
if(go != null){
GameManager gm = go.GetComponent<GameManager>();
gm.AddScore(10);
}
プログラムが間違っていてビルドエラーが出ている可能性が高いです。
エディタ上でbuildしてみましょう。
{}の対応が間違っていないか、全角スペースが入っているかなど、確認してみましょう
classの大文字と小文字が違っている可能性があります。
エディタのbuildエラーが出ませんが、Unityでは読み込めない、という状況が確認されています。
unityの仕様(不具合)かなと思います。
BG(背景画像)の描画優先度を下げることで解決します。
BGのInspectorViewでOrder in Layerを-1にしてください
(テキストの手順にも追記しておきました)