【问题标题】:Need to translate some UnityScript to C#需要将一些 UnityScript 翻译成 C#
【发布时间】:2015-09-26 10:25:59
【问题描述】:

我在互联网上找到了我的问题的代码,但我需要它在 C# 中,而不是 UnityScript。我试过了,但我不知道如何解决一些问题。我几乎翻译了所有内容。

原文:

#pragma strict

var prefab : GameObject;

function Start () {
    spawn();
}

function Update () {

}

function GetPointOnMesh() : RaycastHit {
    var length : float = 100.0;
    var direction : Vector3 = Random.onUnitSphere;
    var ray : Ray = Ray(transform.position + direction*length,-direction);
    var hit : RaycastHit;
    GetComponent.<Collider>().Raycast (ray, hit, length*2);
    return hit;
}
    function spawn() {
        var randomPoint = GetPointOnMesh();
        var spawnPreferences = Instantiate(prefab, randomPoint.point, Quaternion.identity);
        spawnPreferences.transform.eulerAngles.y = Random.Range(0, 360);
    }

半翻译成C#:

using UnityEngine;
using System.Collections;

public class ResourceGenerator : MonoBehaviour
{

    GameObject prefab;

    void Start()
    {
        spawn();
    }

    RaycastHit GetPointOnMesh()
    {
        float length = 100.0f;
        Vector3 direction = Random.onUnitSphere;
        Ray ray = new Ray(transform.position + direction * length, -direction);
        RaycastHit hit;
        GetComponent<Collider>().Raycast(ray, out hit, length * 2);
        return hit;
    }

    void spawn()
    {
        var randomPoint = GetPointOnMesh();
        var spawnPreferences = Instantiate(prefab, randomPoint.point, Quaternion.identity);
        spawnPreferences.transform.eulerAngles.y = Random.Range(0, 360);
    }

}

我不知道需要什么变量类型来代替 var,最后一行有一个错误“对象不包含“转换”的定义。

【问题讨论】:

  • 还要记住一件事——你的脚本文件名必须和类相同。在这种情况下,它应该是 ResourceGenerator.cs

标签: c# unity3d unityscript


【解决方案1】:

你试过了吗?

void spawn()
    {
        RaycastHit randomPoint = GetPointOnMesh();
        GameObject spawnPreferences= (GameObject)Instantiate(prefab, randomPoint.point, Quaternion.identity);
        spawnPreferences.transform.eulerAngles = new Vector3(0,Random.Range(0, 360),0);
    }

【讨论】:

  • 谢谢大家的帮助。它正在工作。现在我可以重新开始游戏制作了。
  • @Haker53535 欢迎来到 Stack Overflow!如果答案有助于您解决问题,请务必接受 - 这样您的问题就会被标记为已回答。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多