游戏对象的统一宽度和高度

时间:2019-02-14 21:55:47

标签: unity3d

我有以下游戏对象:

enter image description here

我需要从c#中获取宽度和高度

2 个答案:

答案 0 :(得分:2)

GameObject没有宽度或高度,但是其中包含的信息可以。在您的情况下,您有一个MeshRenderer,并且方便地具有一个bounds属性,该属性将返回一个...

  

与轴对齐的边界框将对象完全包围在世界空间中。

如果您引用了该对象上的MeshRenderer

MeshRenderer renderer;

然后就可以轻松达到界限了

renderer.bounds;

,然后您可以观察其size属性。


请记住,这是世界空间边界信息,因此所有旋转和缩放都会影响它。如果您想要网格物体本身的原始细节,则需要引用MeshFilter,查看其mesh属性,并在上使用bounds属性 Mesh对象。

答案 1 :(得分:1)

有两种可能的方法。如果您的对象具有渲染器,则可以使用<?php require __DIR__.'/path/to/vendor/autoload.php'; use Microsoft\Graph\Graph; use Microsoft\Graph\Model; $graph = new Graph(); $graph->setAccessToken('YOUR_TOKEN_HERE'); /** @var Model\UploadSession $uploadSession */ $uploadSession = $graph->createRequest("POST", "/me/drive/items/root:/doc-test2.docx:/createUploadSession") ->addHeaders(["Content-Type" => "application/json"]) ->attachBody([ "item" => [ "@microsoft.graph.conflictBehavior" => "rename", "description" => 'File description here' ] ]) ->setReturnType(Model\UploadSession::class) ->execute(); $file = __DIR__.'/path/to/large-file.avi'; $handle = fopen($file, 'r'); $fileSize = fileSize($file); $fileNbByte = $fileSize - 1; $chunkSize = 1024*1024*4; $fgetsLength = $chunkSize + 1; $start = 0; while (!feof($handle)) { $bytes = fread($handle, $fgetsLength); $end = $chunkSize + $start; if ($end > $fileNbByte) { $end = $fileNbByte; } $stream = \GuzzleHttp\Psr7\stream_for($bytes); $res = $graph->createRequest("PUT", $uploadSession->getUploadUrl()) ->addHeaders([ 'Content-Length' => ($end - 1) - $start, 'Content-Range' => "bytes " . $start . "-" . $end . "/" . $fileSize ]) ->setReturnType(Model\UploadSession::class) ->attachBody($bytes) ->execute(); $start = $end + 1; } ,它将返回带有高度和宽度(以及深度,如果是3D的话)的向量。

还可以通过使用renderer.bounds.size从gameObject上的对撞机获取宽度和高度。尝试这样的事情:

collider.bounds.size

希望这会有所帮助!