【问题标题】:Error in Unity: Lightning.SetColors(Color, Color)' must have a body because it is not marked abstract, extern, or partialUnity 中的错误:Lightning.SetColors(Color, Color)' 必须有一个主体,因为它没有标记为抽象、外部或部分
【发布时间】:2017-09-02 07:27:36
【问题描述】:

错误是:

错误(1)

Assets/_dinostudios123/Match-Tree Engine/Scripts/Effects/Lightning.cs(7,14): 错误 CS0501: `Lightning.SetColors(Color, Color)' 必须有一个主体,因为它没有标记为抽象、外部, 或部分

此错误是由更改 [line.SetColors(color, color);] 引起的,必须添加 public void SetColors (Color start, Color end);

错误(2)

Assets/_dinostudios123/Match-Tree Engine/Scripts/Effects/Lightning.cs(30,14):警告 CS0618:UnityEngine.LineRenderer.SetVertexCount(int)' is obsolete: 请改用 numPositions。'

在添加代码行以更正颜色开始和颜色结束并更正每行的 int 计数时,谁能确定为什么会出现错误代码?


using UnityEngine;

using System.Collections;

// Lightning effect

public class Lightning: MonoBehaviour {

    public void SetColors (  //The error is applied to this line of code
        Color start,
        Color end
    );

    public void SetVertexCount (
        int count
    );

    public Transform start; // start object
    public Transform end; //end object
    public int bend = 2; // bends count
    public Vector3[] bendPoint; // points of bending
    public Color color; // start lightning color
   
    public string sortingLayer;
    public int sortingOrder;

    LineRenderer line;  //LineRenderer Line
    float distance = 0f;
    float lastTime = -100f;
    float frequency = 20f;
    bool  destroing = false;
    Vector3 a;
    Vector3 b;
    
    
    void  Start (){
        line = GetComponent<LineRenderer>();
        bendPoint = new Vector3[bend];
        line.SetColors(color, color);  //color, color
        line.SetVertexCount(bend + 2);
        line.GetComponent<Renderer>().sortingLayerName = sortingLayer;
        line.sortingOrder = sortingOrder;

        transform.parent = GameObject.Find("Slots").transform;
    }
    
    void  Update (){
        if (end == null || !end.gameObject.activeSelf || start == null || !start.gameObject.activeSelf) {
            Remove();
            return;
        }
        
        if (!destroing) {
            a = start.position;
            b = end.position;
        }
        distance = (a - b).magnitude;
        if (lastTime + 1f/frequency < Time.time) {
            lastTime = Time.time;
            for (int i = 0; i < bendPoint.Length; i++)
                bendPoint[i] = new Vector3((2f * Random.value - 1f) * 0.1f * distance, (2f * Random.value - 1f) * 0.1f * distance, 0f);
        }
        line.SetPosition(0, a);
        for (int i= 1; i < bend + 1; i++) {
            line.SetPosition(i, Vector3.Lerp(a, b, (1f * i)/(bend+1)) + bendPoint[i-1]);
        }
        line.SetPosition(bend + 1, b);
    }

    public void Remove() {
        StartCoroutine(FadeOut());
    }

    IEnumerator FadeOut (){
        if (destroing) yield break;
        destroing = true;
        while (GetComponent<Animation>().isPlaying) yield return 0;
        GetComponent<Animation>().Play("LightningFadeOut");
        while (GetComponent<Animation>().isPlaying) yield return 0;
        Destroy(gameObject);
    }

    // function of creating new lightning effect
    public static Lightning CreateLightning (int bend, Transform start, Transform end, Color color) {
        Lightning newLightning = ContentAssistant.main.GetItem<Lightning> ("Lightning");
        newLightning.bend = bend;
        newLightning.start = start;
        newLightning.end = end;
        newLightning.color = color;
        return newLightning;
    }
}

【问题讨论】:

  • 我想通了并修复了文件。我所做的只是以以下格式创建一个正文调用: public void SetColors (Color start, Color end){ SetColors(color, color); } 对于颜色问题和 public void SetVertexCount (int count){ SetVertexCount(bend + 2); } 用于 int 问题

标签: c# unity3d colors int


【解决方案1】:

编译器警告你,你已经定义了带有参数但没有主体的方法。

调整你的格式可以更容易地看到它在抱怨什么:

public void SetColors(Color start, Color end);

public void SetVertexCount(int count);

您需要为这些方法定义主体。

public void SetColors(Color start, Color end)
{
    // set the starting and ending colors
}

public void SetVertexCount(int count)
{
    // set the vertex count
}

【讨论】:

  • 是的,我按照您在提到之前所说的那样编辑了文件。我在想,它奏效了。谢谢
猜你喜欢
  • 2017-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多