gpt4 book ai didi

c# - 需要将一些 UnityScript 翻译成 C#

转载 作者:太空宇宙 更新时间:2023-11-03 10:22:43 26 4
gpt4 key购买 nike

我在互联网上找到了我的问题的代码,但我需要它在 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,并且在最后一行有一个错误“Object does not cointain definition for “transform”。

最佳答案

你试过吗?

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

关于c# - 需要将一些 UnityScript 翻译成 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32796144/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com