美文网首页Unity2DC#Unity
unity2d旋转专攻◤一◢ 角度计算

unity2d旋转专攻◤一◢ 角度计算

作者: normidar | 来源:发表于2018-06-06 10:36 被阅读0次

  有很多人说做游戏最难的就是角度和旋转的问题,那么今天我们来一步一步地坚固这个游戏界的软骨。

首先是角度问题:
1,要知道角度需要有两个向量才可以知道,向量间的角度(哈哈,回忆初中知识)。
而通常情况下我们只有两个点,那应该怎么得出向量呢?

得向公式:V终点-V起点=向量

比如说你鼠标位置是mp,go位置是gp,获取gp到mp的向量是反过来mp-gp。

2,那我们照上面只能得出一个向量,一开始说到要两个,那就应该去找起始向量!
在不同的坐标计算方法中有着不同的起始向量,而我通常用的是V(0,1)(就是vector.up)那么如何得角呢?

得角公式:float 角 = Vector2.Angle(Vector2.up, 向量)
float 角 = Vector2.Angle(Vector2.up, 向量)

下面贴出快捷代码段:

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
    <CodeSnippet Format="1.0.0">
        <Header>
            <Title>fv</Title>
            <Shortcut>fv2</Shortcut>
            <Description>向量角计算代码段</Description>
            <Author>normidar</Author>
            <SnippetTypes>
                <SnippetType>flo</SnippetType>
            </SnippetTypes>
        </Header>
        <Snippet>
      <Declarations>
        <Literal>
          <ID>flo</ID>
          <ToolTip>角</ToolTip>
          <Default>angle</Default>
        </Literal>
        <Literal>
          <ID>count</ID>
          <ToolTip>向量</ToolTip>
          <Default>vector</Default>
        </Literal>
      </Declarations>
            <Code Language="csharp">
        <![CDATA[float $flo$ =  Vector2.Angle(Vector2.up,$count$);]]>
            </Code>
        </Snippet>
    </CodeSnippet>
</CodeSnippets>

相关文章

网友评论

    本文标题:unity2d旋转专攻◤一◢ 角度计算

    本文链接:https://www.haomeiwen.com/subject/yyavsftx.html