Я пытаюсь создать сценарий, чтобы при нажатии кнопки система частиц изменялась на определенный цвет, все работало нормально, кроме изменения цвета частицы, когда я пытаюсь, появляется эта ошибка:
NullReferenceException: не создавайте свои собственные экземпляры модуля, получите их из экземпляра ParticleSystem
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Attack : MonoBehaviour
{
public int MovementDirection = 0;
public int State = 0;
public GameObject attackOrb; //The prefab for our attack hitbox
public Transform Player; //Where the player is
public float R = 0.0F;
public float G = 0.0F;
public float B = 0.0F;
public float A = 1.0F;
private ParticleSystem attackEffect;
// Start is called before the first frame update
void Start()
{
attackEffect = gameObject.GetComponent<ParticleSystem>();
}
// Update is called once per frame
void Update()
{
var main = attackEffect.main;
main.startColor = new Color(R, G, B, A);
if (Input.GetKeyDown(KeyCode.Keypad1)) State = 1;
if (Input.GetKeyDown(KeyCode.Keypad2)) State = 2;
if (Input.GetKeyDown(KeyCode.Keypad3)) State = 3;
if (Input.GetKeyDown(KeyCode.Keypad4)) State = 4;
if (Input.GetKeyDown(KeyCode.Keypad5)) State = 5;
if (Input.GetKeyDown(KeyCode.Keypad6)) State = 6;
switch(State)
{
case 0:
GetComponent<Renderer>().material.color = new Color(1f, 0.5f, 0.5f, 0.5f);
R = 1f;
G = 0.5f;
B = 0.5f;
A = 0.5f;
break;
Он должен быть цвета R, G, B, A, но вместо этого возвращает эту ошибку. почему он возвращает это и как мне исправить это?
Полная ошибка:
NullReferenceException: Do not create your own module instances, get them from a ParticleSystem instance
UnityEngine.ParticleSystem+MainModule.set_startColor (UnityEngine.ParticleSystem+MinMaxGradient value) (at C:/buildslave/unity/build/artifacts/generated/bindings_old/common/ParticleSystem/ParticleSystemBindings.gen.cs:50)
Attack.Update () (at Assets/Script/Attack.cs:30)