Um einen Zusammenhang zu geben: In der Einheit habe ich 2 Boxen, die beide markiert sind "Box" Eine Box ist in einem Flugzeug und die andere in der Luft, wenn das Spiel auf der Box auf der anderen gespielt wird. Hier ist die Konsole für den Motor:Ich habe eine for-Schleife in C#, die in Verbindung mit Unity-Engine funktioniert. Aber wie mache ich es so, dass es die Schleife nur einmal aufruft?
Material 1 (UnityEngine.Material)
UnityEngine.Debug:Log(Object)
colourChangeArray:OnCollisionEnter(Collision) (at Assets/colourChangeArray.cs:28)
mit Material 1 zu ändernden Material 2, 3, 4 bis 5 und dann tut den 1-5-Zyklus 10-20 mal
Unten ist der Code i verwende
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class colourChangeArray : MonoBehaviour
{
public int trigger = 1;
public Material[] material;
Renderer rend;
// Use this for initialization
void Start()
{
rend = GetComponent <Renderer>();
rend.enabled = true;
rend.sharedMaterial = material[0];
}
// Update is called on collision
void OnCollisionEnter(Collision col)
{
if (col.gameObject.tag == "box")
{
for(int i = 0; i <material.Length; i++){
rend.sharedMaterial = material[i];
Debug.Log(rend.sharedMaterial);
}
}
else
{
rend.sharedMaterial = material[0];
Debug.Log(rend.sharedMaterial);
}
}
}
Dank Emad wird auf jeden Fall diese Lösung testen! –
Bitte tun. Und wenn Sie es nützlich fanden, vergessen Sie nicht, upvote :) – Emad