【发布时间】: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 问题