pap*_*api 0 javascript c# unity-game-engine
需要帮助将JS转换为C#.
原文:
var target : GameObject;
var fadeDuration : float = 3.0;
function Update(){
if (target.GetComponent.<Renderer>().material.color.a > 0)
target.GetComponent.<Renderer>().material.color.a -= Time.deltaTime/fadeDuration;
}
Run Code Online (Sandbox Code Playgroud)
翻译的C#脚本:
using UnityEngine;
using System.Collections;
public class FadeOutDeadBody : MonoBehaviour {
GameObject target;
float fadeDuration = 3.0f;
void Update (){
if (target.GetComponent.<Renderer>().material.color.a > 0)
target.GetComponent.<Renderer>().material.color.a -= Time.deltaTime/fadeDuration;
}
}
Run Code Online (Sandbox Code Playgroud)
我收到来自Unity3d的错误说:
folder/FadeOutDeadBody.cs(9,29):错误CS1525:意外的符号
<', expecting标识符'
任何想法如何解决这个问题?
每个人都把它留了出去,所以我决定发帖.
您不能color直接修改a的alpha .您必须创建一个新的color,修改alpha,然后将其分配回您的Material颜色.也删除点.它应该是这样的:
public class FadeOutDeadBody : MonoBehaviour
{
public GameObject target;
float fadeDuration = 3.0f;
Renderer renderer;
void Start()
{
renderer = target.GetComponent<Renderer>();
}
void Update()
{
if (renderer.material.color.a > 0)
{
Color color = renderer.material.color;
color.a -= Time.deltaTime / fadeDuration;
renderer.material.color = color;
}
}
}
Run Code Online (Sandbox Code Playgroud)