2015-09-26 2 views
2

Я нашел код для своей проблемы в Интернете, но мне это нужно в C#, а не в UnityScript. Я попытался, но я не знаю, как исправить некоторые проблемы. Я перевел почти все.Нужно перевести UnityScript на C#

Оригинал:

#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); 
    } 

Half переведены на 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); 
    } 

} 

Я не знаю, какой тип переменной должен быть вместо вар и есть ошибка в последней строке «Объект не cointain определения для "преобразования".

+0

Также помните одно: имя файла сценария должно совпадать с классом. в этом случае это должен быть ResourceGenerator.cs –

ответ

2

вы пробовали?

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); 
    } 
+0

Спасибо, за помощь ребятам. Работает. Теперь я могу вернуться к игре. –

+1

@ Haker53535 Добро пожаловать в переполнение стека! Не забудьте принять ответ, если он поможет вам решить вашу проблему - таким образом ваш вопрос будет отмечен как ответ. – Serlite

Смежные вопросы