更改代码顺序后无法检测到Debug.Log


using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MyCharater : MonoBehaviour
{
void Start()
{
int charaterLevel = 12;
int nextSkillLevel = GenerateCharater("Spike", charaterLevel);
Debug.Log(nextSkillLevel);
Debug.Log(GenerateCharater("Jet", charaterLevel));
}
public int GenerateCharater(string name, int level)
{
Debug.LogFormat("Charater: {0} - level: {1}", name, level);
return level + 5;
}
}

以上代码运行正常

但是当我改变GenerateCharater方法中两行代码的顺序时,unity报告了一个警报并显示"检测到不可达代码";第18行Debug.Log在unity中无法正常显示

请告诉我为什么。

文档如下:

返回语句终止方法的执行。在其中出现并将控制权返回给调用方法。它还可以返回一个可选值。如果方法是void类型,则可以省略返回语句。

问题是当你改变顺序时,代码

Debug.LogFormat("Charater: {0} - level: {1}", name, level);

返回之后关键词这代码将

或者你可以访问这个,它已经有答案了

在方法内部,当到达return语句时,控制返回到方法的调用者,并且方法体中后续行中的代码不会执行,因为控制从未到达该行。因此,return语句之后的任何内容都不会执行(yield return语句的情况不同)

最新更新