将js转换为C#

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标识符'

任何想法如何解决这个问题?

rom*_*aga 6

只需删除GetComponent.<Renderer> =>中的点GetComponent<Renderer>


Pro*_*mer 5

每个人都把它留了出去,所以我决定发帖.

您不能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)