0
コンポーネント(マテリアル)をいくつかのキューブに追加しようとしています。 私はキューブの配列を持っていて、それらは描かれなければなりません。コンポーネント(マテリアル)を1つのキューブに追加するC#
MissingComponentException:そこには「素材」が 「キューブ」ゲームオブジェクトに添付されていないが、スクリプトは
マイそれにアクセスしようとしているが最初のキューブた後、Unityは言うエラーがスローされますコード:
using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class GameScene : MonoBehaviour {
SceneManager Changer;
public Scrollbar speed, size;
GameObject[,] cubes;
int sizer;
Color mixer;
// Use this for initialization
void Start() {
size.value = PlayerPrefs.GetFloat("sizeSecond");
speed.value = PlayerPrefs.GetFloat("speed");
SetSize();
cubes = new GameObject[sizer, sizer];
GenerateCubes();
mixer = new Color(PlayerPrefs.GetFloat("red"), PlayerPrefs.GetFloat("green"), PlayerPrefs.GetFloat("blue"));
}
// Update is called once per frame
void Update() {
}
public void GoBack() {
SceneManager.LoadScene(2);
PlayerPrefs.SetInt("chosenScene", 1); //key setzen
PlayerPrefs.SetFloat("speed", speed.value);
PlayerPrefs.SetFloat("sizeSecond", size.value);
}
void SetSize() {
if (PlayerPrefs.GetInt("size") == 0)
{
sizer = 20;
}
else if (PlayerPrefs.GetInt("size") == 1)
{
sizer = 40;
}
else if (PlayerPrefs.GetInt("size") == 2)
{
sizer = 60;
}
}
void GenerateCubes() {
for (int i = 0; i < sizer; i++)
{
for (int j = 0; j < sizer; j++)
{
cubes[i, j] = GameObject.CreatePrimitive(PrimitiveType.Cube); //erzeugen
cubes[i, j].transform.position = new Vector3(i -sizer/2, j - sizer/2, 0); // durch 2 damit es mittig angezeigt wird.
cubes[i, j].GetComponent<Material>().color = mixer;
Instantiate(cubes[i, j]);
}
}
}
}
サイザーはキューブの量を取得します。
で
を交換してください。ご協力ありがとうございます!!!! – louis12356
@ louis12356新しいUnityユーザにとってはちょっとした間違いです。答えを受け入れることを忘れないでください。 – Programmer
私はそれを受け入れました - ありがとう再び:-) – louis12356