2017-04-07 42 views
0

的误差是完全:错误在Unity:Lightning.SetColors(彩色,彩色)”必须有一个主体,因为它未标记抽象,EXTERN,或部分

错误(1)

资产/ _dinostudios123 /匹配树引擎/脚本/效果/ Lightning.cs(7,14):错误CS0501:`Lightning.SetColors(Color,Color)'必须有一个主体,因为它没有标记为抽象,外部或部分

此错误是由于必须添加public void SetColors(Color start,Color end)而改变[line.SetColors(color,color);]所致。

错误(2)

资产/ _dinostudios123 /匹配树引擎/脚本/效果/ 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; 
    } 
} 
+0

我想通了,修复了这个文件。我所做的只是以下面的格式创建一个正文调用:public void SetColors(Color start,Color end){ColorColor(color,color);}} (int count){ \t SetVertexCount(bend + 2);其中, \t}整数问题 –

回答

0

编译器警告你,你定义的参数,但没有尸体的方法。

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

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 
} 
+0

雅我编辑文件就像你之前说过的那样。我一直在想,它工作。谢谢 –

相关问题