Unity3d easytouch计算摇杆旋转角度以及摇杆八方向控制角色

来源:互联网 发布:apache 查看编译参数 编辑:程序博客网 时间:2024/05/22 19:48




unity3d easytouch计算摇杆旋转角度以及摇杆八方向控制角色

在写第三人称控制的时候,一开始在电脑测试是用WASD控制角色

后来需要发布到手机上,于是就加了一个摇杆

键盘控制角色的代码已经写好了,角色八方向移动


如果按照传统的大众思路来控制的话,是达不到我想要的效果的,传统控制思路代码如下:

1 //当摇杆处于移动状态时,角色开始奔跑 2   void OnJoystickMove(MovingJoystick move) 3   { 4     if (move.joystickName != "EasyJoystick") 5     { 6       return; 7     } 8     //获取摇杆偏移量 9     float joyPositionX = move.joystickAxis.x;10     float joyPositionY = move.joystickAxis.y;11     if (joyPositionY != 0 || joyPositionX != 0)12     {13       //设置角色的朝向(朝向当前坐标+摇杆偏移量)14        transform.LookAt(new Vector3(transform.position.x + joyPositionX, transform.position.y, transform.position.z + joyPositionY));15       //移动玩家的位置(按朝向位置移动)16       transform.Translate(Vector3.forward * Time.deltaTime * 7.5F);17       //播放奔跑动画18       animation.CrossFade("Run");19     }20   }
复制代码

 

如果要按照摇杆传统思路控制角色,在重新写控制角色代码的话非常麻烦,所以我就通过计算摇杆旋转角度来判断当前摇杆处于哪个方向

ok,现在我们开始来敲代码

 

首先,我们来调试观察一下摇杆的x轴、y轴的返回值

1     //移动摇杆中  2     void OnJoystickMove(MovingJoystick move)3     {4         Debug.Log(move.joystickAxis.x + "," + move.joystickAxis.y);5     }

调试结果为:

左:x = -1,y = 0;顺时针旋转X逐渐变大,Y逐渐变大

上:x = 0,y = 1;顺时针旋转X逐渐变大,Y逐渐变小

右:x = 1,y = 0;顺时针旋转X逐渐变小,Y逐渐变小

下:x = 0,y = -1;顺时针旋转X逐渐变小,Y逐渐变大

我们把摇杆底图看成是两个半圆,上半圆和下半圆

阴兵海配图 

                  阴兵海配图

那么:

X轴移动到左边时,X = -1;X轴移动到右边时:X = 1;X轴从左转到右旋转了180度

Y轴移动到左边时,Y = 0;Y轴移动到右边时:Y = 0;Y轴从左转到右旋转了180度

 

你如果直接看我的调试结果肯定有点晕,建议边调试边参考我的调试结果,这样才能理解

如果我们要计算当前摇杆在左上角旋转的度数怎么计算呢?

读过小学的人都可以做,只是看见摇杆返回的-1和0脑袋被绕迷糊了,我也一样,弄了好半天才弄好

当摇杆移动到左时,为0度、360度(因为360度为一圈,已经绕回远点了)

当摇杆移动到上时,为90度

当摇杆移动到右时,为180度

当摇杆移动到下时,为270度

既然知道是多少度这就好办多了

得出公式:

当X轴在右时为1,也就是X轴为180度,则:1 * 90 + 90 = 180

当前X轴旋转角度为:X轴返回值 * 90度 + 90度

 

你以为这就完事了吗?还高兴得太早,用这个公式计算只能得到上半圆的旋转角度

现在我们要获取下半圆旋转角度,然后用上半圆旋转角度 + 下半圆旋转角度 = 当前旋转角度

当摇杆移动到下半圆时我们怎么计算旋转角度呢?

我们已经知道Y轴在左边为0,在右边为0,在下边为-1,继续用计算X轴的公式

Y左:0 * 90 + 90 = 90

Y上:1 * 90 + 90 = 180

Y下:-1 * 90 + 90 = 0

Y右:0 * 90 + 90 = 90

 

X左:-1 * 90 + 90 = 0

X上:0 * 90 + 90 = 90

X下:0 * 90 + 90 = 90

X右:1 * 90 + 90 = 180

从计算结果中可以得出结论

当Y轴小于90度时,摇杆就处于下半圆

当Y轴小于90度时且X小于90度时为左下:270度 + Y轴旋转角度

当Y轴小于90度时且X大于90度时为右下:180度 + Y轴旋转角度

思路搞定了,开始敲代码,代码不多,我直接贴上来了,看完上诉文字相信你已经知道这些代码是怎么回事了

复制代码
 1     /// 计算摇杆角度 <summary> 2     /// 计算摇杆角度 3     /// </summary> 4     /// <param name="_joyPositionX">摇杆X轴</param> 5     /// <param name="_joyPositionY">摇杆Y轴</param> 6     /// <returns>返回当前摇杆旋转多少度</returns> 7     private float CalculaAngle(float _joyPositionX, float _joyPositionY) 8     { 9         float currentAngleX = _joyPositionX * 90f + 90f;//X轴 当前角度10         float currentAngleY = _joyPositionY * 90f + 90f;//Y轴 当前角度11 12         //下半圆13         if (currentAngleY < 90f)14         {15             if (currentAngleX < 90f)16             {17                 return 270f + currentAngleY;18             }19             else if (currentAngleX > 90f)20             {21                 return 180f + (90f - currentAngleY);22             }23         }24         return currentAngleX;25     }
复制代码

 ok,现在知道当前摇杆旋转了多少度,我们可以轻松的用角度来判断当前移动方向了

用键盘控制时:

A = 左

WA = 左上

W = 上

WD = 右上

D = 右

SD = 右下

S = 下

SA = 左下

 

当摇杆角度为0度,往左

当摇杆角度为90度,往上

当摇杆角度为180度,往右

那我们肯定不能这样写啊,你能确定玩家操作摇杆那么精确啊?

因为我这里控制角色是八方向,所以:360 / 8 = 45

每个方向有45度可触发,那么得出以下解决方案:

上:当前角度 <= 90 + 45 / 2 = 112.5 && 当前角度 >= 90 - 45 / 2 = 67.5

如法炮制,得出以下代码:

复制代码
 1             float currentAngle = CalculaAngle(joyPositionX, joyPositionY); 2              3             if (currentAngle <= 22.5f && currentAngle >= 0f || currentAngle <= 360f && currentAngle >= 337.5f)//0;左 4                 CurrentDire = "A"; 5             else if (currentAngle <= 67.5f && currentAngle >= 22.5f)//45;左上 6                 CurrentDire = "WA"; 7             else if (currentAngle <= 112.5f && currentAngle >= 67.5f)//90;上 8                 CurrentDire = "W"; 9             else if (currentAngle <= 157.5f && currentAngle >= 112.5f)//135;右上10                 CurrentDire = "WD";11             else if (currentAngle <= 202.5f && currentAngle >= 157.5f)//180;右12                 CurrentDire = "D";13             else if (currentAngle <= 247.5f && currentAngle >= 202.5f)//225;右下14                 CurrentDire = "SD";15             else if (currentAngle <= 292.5f && currentAngle >= 247.5f)//270;下16                 CurrentDire = "S";17             else if (currentAngle <= 337.5f && currentAngle >= 292.5f)//315;左下18                 CurrentDire = "SA";
复制代码

大功告成,赶紧发布到手机上跑一下试试,这就是我想要的摇杆八方向操作效果

在写第三人称控制的时候,一开始在电脑测试是用WASD控制角色

后来需要发布到手机上,于是就加了一个摇杆

键盘控制角色的代码已经写好了,角色八方向移动

如果按照传统的大众思路来控制的话,是达不到我想要的效果的,传统控制思路代码如下:

复制代码
 1 //当摇杆处于移动状态时,角色开始奔跑 2   void OnJoystickMove(MovingJoystick move) 3   { 4     if (move.joystickName != "EasyJoystick") 5     { 6       return; 7     } 8     //获取摇杆偏移量 9     float joyPositionX = move.joystickAxis.x;10     float joyPositionY = move.joystickAxis.y;11     if (joyPositionY != 0 || joyPositionX != 0)12     {13       //设置角色的朝向(朝向当前坐标+摇杆偏移量)14        transform.LookAt(new Vector3(transform.position.x + joyPositionX, transform.position.y, transform.position.z + joyPositionY));15       //移动玩家的位置(按朝向位置移动)16       transform.Translate(Vector3.forward * Time.deltaTime * 7.5F);17       //播放奔跑动画18       animation.CrossFade("Run");19     }20   }
复制代码

 

如果要按照摇杆传统思路控制角色,在重新写控制角色代码的话非常麻烦,所以我就通过计算摇杆旋转角度来判断当前摇杆处于哪个方向

ok,现在我们开始来敲代码

 

首先,我们来调试观察一下摇杆的x轴、y轴的返回值

1     //移动摇杆中  2     void OnJoystickMove(MovingJoystick move)3     {4         Debug.Log(move.joystickAxis.x + "," + move.joystickAxis.y);5     }


调试结果为:

左:x = -1,y = 0;顺时针旋转X逐渐变大,Y逐渐变大

上:x = 0,y = 1;顺时针旋转X逐渐变大,Y逐渐变小

右:x = 1,y = 0;顺时针旋转X逐渐变小,Y逐渐变小

下:x = 0,y = -1;顺时针旋转X逐渐变小,Y逐渐变大

我们把摇杆底图看成是两个半圆,上半圆和下半圆

那么:

X轴移动到左边时,X = -1;X轴移动到右边时:X = 1;X轴从左转到右旋转了180度

Y轴移动到左边时,Y = 0;Y轴移动到右边时:Y = 0;Y轴从左转到右旋转了180度

 

你如果直接看我的调试结果肯定有点晕,建议边调试边参考我的调试结果,这样才能理解

如果我们要计算当前摇杆在左上角旋转的度数怎么计算呢?

读过小学的人都可以做,只是看见摇杆返回的-1和0脑袋被绕迷糊了,我也一样,弄了好半天才弄好

当摇杆移动到左时,为0度、360度(因为360度为一圈,已经绕回远点了)

当摇杆移动到上时,为90度

当摇杆移动到右时,为180度

当摇杆移动到下时,为270度

既然知道是多少度这就好办多了

得出公式:

当X轴在右时为1,也就是X轴为180度,则:1 * 90 + 90 = 180

当前X轴旋转角度为:X轴返回值 * 90度 + 90度

 

你以为这就完事了吗?还高兴得太早,用这个公式计算只能得到上半圆的旋转角度

现在我们要获取下半圆旋转角度,然后用上半圆旋转角度 + 下半圆旋转角度 = 当前旋转角度

当摇杆移动到下半圆时我们怎么计算旋转角度呢?

我们已经知道Y轴在左边为0,在右边为0,在下边为-1,继续用计算X轴的公式

Y左:0 * 90 + 90 = 90

Y上:1 * 90 + 90 = 180

Y下:-1 * 90 + 90 = 0

Y右:0 * 90 + 90 = 90

 

X左:-1 * 90 + 90 = 0

X上:0 * 90 + 90 = 90

X下:0 * 90 + 90 = 90

X右:1 * 90 + 90 = 180

从计算结果中可以得出结论

当Y轴小于90度时,摇杆就处于下半圆

当Y轴小于90度时且X小于90度时为左下:270度 + Y轴旋转角度

当Y轴小于90度时且X大于90度时为右下:180度 + Y轴旋转角度

思路搞定了,开始敲代码,代码不多,我直接贴上来了,看完上诉文字相信你已经知道这些代码是怎么回事了

复制代码
 1     /// 计算摇杆角度 <summary> 2     /// 计算摇杆角度 3     /// </summary> 4     /// <param name="_joyPositionX">摇杆X轴</param> 5     /// <param name="_joyPositionY">摇杆Y轴</param> 6     /// <returns>返回当前摇杆旋转多少度</returns> 7     private float CalculaAngle(float _joyPositionX, float _joyPositionY) 8     { 9         float currentAngleX = _joyPositionX * 90f + 90f;//X轴 当前角度10         float currentAngleY = _joyPositionY * 90f + 90f;//Y轴 当前角度11 12         //下半圆13         if (currentAngleY < 90f)14         {15             if (currentAngleX < 90f)16             {17                 return 270f + currentAngleY;18             }19             else if (currentAngleX > 90f)20             {21                 return 180f + (90f - currentAngleY);22             }23         }24         return currentAngleX;25     }
复制代码

 ok,现在知道当前摇杆旋转了多少度,我们可以轻松的用角度来判断当前移动方向了

用键盘控制时:

A = 左

WA = 左上

W = 上

WD = 右上

D = 右

SD = 右下

S = 下

SA = 左下

 

当摇杆角度为0度,往左

当摇杆角度为90度,往上

当摇杆角度为180度,往右

那我们肯定不能这样写啊,你能确定玩家操作摇杆那么精确啊?

因为我这里控制角色是八方向,所以:360 / 8 = 45

每个方向有45度可触发,那么得出以下解决方案:

上:当前角度 <= 90 + 45 / 2 = 112.5 && 当前角度 >= 90 - 45 / 2 = 67.5

如法炮制,得出以下代码:

复制代码
 1             float currentAngle = CalculaAngle(joyPositionX, joyPositionY); 2              3             if (currentAngle <= 22.5f && currentAngle >= 0f || currentAngle <= 360f && currentAngle >= 337.5f)//0;左 4                 CurrentDire = "A"; 5             else if (currentAngle <= 67.5f && currentAngle >= 22.5f)//45;左上 6                 CurrentDire = "WA"; 7             else if (currentAngle <= 112.5f && currentAngle >= 67.5f)//90;上 8                 CurrentDire = "W"; 9             else if (currentAngle <= 157.5f && currentAngle >= 112.5f)//135;右上10                 CurrentDire = "WD";11             else if (currentAngle <= 202.5f && currentAngle >= 157.5f)//180;右12                 CurrentDire = "D";13             else if (currentAngle <= 247.5f && currentAngle >= 202.5f)//225;右下14                 CurrentDire = "SD";15             else if (currentAngle <= 292.5f && currentAngle >= 247.5f)//270;下16                 CurrentDire = "S";17             else if (currentAngle <= 337.5f && currentAngle >= 292.5f)//315;左下18                 CurrentDire = "SA";
复制代码

大功告成,赶紧发布到手机上跑一下试试,这就是我想要的摇杆八方向操作效果







阅读全文

    </div>    <!--  <div class="reward_box">        <div class="tit">          <button class="btn_reward"><i class="icon iconfont icon-dashang-"></i></button>        </div>        <dl class="clearfix">          <dt><a href="#" target="_blank">近期打赏</a></dt>          <dd><a href="#" target="_blank"><img src="http://avatar.csdn.net/9/3/2/2_nzf_001.jpg" alt="聂兆芳" title="聂兆芳"></a></dd>          <dd><a href="#" target="_blank"><img src="http://avatar.csdn.net/9/3/2/2_nzf_001.jpg" alt="聂兆芳" title="聂兆芳"></a></dd>          <dd><a href="#" target="_blank"><img src="http://avatar.csdn.net/9/3/2/2_nzf_001.jpg" alt="聂兆芳" title="聂兆芳"></a></dd>          <dd><a href="#" target="_blank"><img src="http://avatar.csdn.net/9/3/2/2_nzf_001.jpg" alt="聂兆芳" title="聂兆芳"></a></dd>          <dd><a href="#" target="_blank"><img src="http://avatar.csdn.net/9/3/2/2_nzf_001.jpg" alt="聂兆芳" title="聂兆芳"></a></dd>        </dl>      </div>-->    <ul class="article_collect clearfix csdn-tracking-statistics"  data-mod="popu_378">        <li class="tit">本文已收录于以下专栏:</li>    </ul>    <div class="comment_box clearfix">        <div id="comment_form">            <div id="commentsbmitarear">                <!-- <h6><span>0</span>条评论</h6> -->       <!--          <dl class="clearfix" id="commentbox">                    <dt>                        <a href="http://my.csdn.net/"><img src="" ></a>                    </dt>                    <dd>                        <a href="http://my.csdn.net/" target="_blank"></a>                    </dd>                    <dd class="txt_tip"><span id="tip_comment" class="tip"></span></dd>                </dl> -->                <div class="comment_area clearfix">                    <div class="userimg"><a href="http://my.csdn.net/"><img src=""></a></div>                    <form action="/ybhjx/comment/submit?id=50387749" method="post" onsubmit="return subform(this);" id="commentform">                        <textarea class="comment_content" name="comment_content" id="comment_content" placeholder="发表你的评论"></textarea>                        <div class="bot_bar clearfix">                            <div id="ubbtools" class="add_code">                                <a href="#insertcode" code="code" target="_self"><i class="icon iconfont icon-daima"></i></a>                            </div>                            <input type="hidden" id="comment_replyId" name="comment_replyId">                            <input type="hidden" id="comment_userId" name="comment_userId" value="">                            <input type="hidden" id="commentId" name="commentId" value="">                            <input type="submit" class="btn btn-redborder" value="发表评论">                            <span id="tip_comment" class="tip">                            <div style="display: none;" class="csdn-tracking-statistics" data-mod="popu_384"><a href="#" target="_blank" class="comment_area_btn">发表评论</a></div>                            <div id="lang_list" code="code">                                <a href="#html" style="width:95px;" class="long_name" target="_self">HTML/XML</a>                                <a href="#objc" style="width:95px;" class="long_name" target="_self">objective-c</a>                                <a href="#delphi" style="width:58px;" class="zhong_name" target="_self">Delphi</a>                                <a href="#ruby" class="zhong_name" target="_self">Ruby</a>                                <a href="#php" target="_self">PHP</a>                                <a href="#csharp" class="duan_name" target="_self">C#</a>                                <a style=" border-right: none;" href="#cpp" class="duan_name" target="_self">C++</a>                                <a style=" border-bottom:none;width:95px;" href="#javascript" class="long_name" target="_self">JavaScript</a>                                <a style=" border-bottom:none;width:95px;" href="#vb" class="long_name" target="_self">Visual Basic</a>                                <a style=" border-bottom:none;" href="#python" class="zhong_name" target="_self">Python</a>                                <a style=" border-bottom:none;" href="#java" class="zhong_name" target="_self">Java</a>                                <a style="border-bottom:none;" href="#css" class="duan_name" target="_self">CSS</a>                                <a style="border-bottom:none;" href="#sql" class="duan_name" target="_self">SQL</a>                                <a style="border:none; " href="#plain" class="duan_name" target="_self">其它</a>                                <span class="arrb"></span>                            </div>                        </div>                    </form>                </div>            </div>        </div>    </div>    <div class="comment_li_outbox">        <div id="comment_list"></div>    </div>    <div class="more_comment">        <div id="comment_bar" class="trackgin-ad" data-mod="popu_385"></div>    </div>    <h3 class="recommend_tit">相关文章推荐</h3>    <div class="recommend_list clearfix">        <dl class="clearfix csdn-tracking-statistics" data-mod="popu_387" data-poputype="feed"  data-feed-show="false"  data-dsm="post">            <dd>                <h2><a href="/wiyun_beijing/article/details/17715907"  target="_blank" strategy="BlogCommendFromBaidu_0">360&#176;平滑游戏摇杆(触屏方向导航)</a></h2>                <div class="summary">                    Android游戏开发二十四】360&#176;平滑游戏摇杆(触屏方向导航)

本站文章均为
李华明Himi 原创,转载务必在明显处注明:(作者新浪微博:
@李华明Himi )
转载自【黑米Gam…



  • u011794223
  • u011794223
  • 2013-12-31 15:35
  • 1051


        <dl class="clearfix csdn-tracking-statistics" data-mod="popu_387" data-poputype="feed"  data-feed-show="false"  data-dsm="post">            <dd>                <h2><a href="/myk7694503/article/details/43602237"  target="_blank" strategy="BlogCommendFromBaidu_1">Unity之一天一个技术点(九)---EasyTouch 旋转镜头</a></h2>                <div class="summary">                    EasyTouch&#160;旋转镜头

从EasyTouch的官方例子上看,它的左摇杆 并不是控制整体的旋转镜头,而且左摇杆控制上下旋转,右摇杆控制左右旋转,十分不方便。

假如只用一个摇…


  • myk7694503
  • myk7694503
  • 2015-02-07 12:00
  • 1332


        <!--dl class="clearfix csdn-tracking-statistics" data-mod="popu_393">            <dt><a href="http://edu.csdn.net/huiyiCourse/series_detail/64?utm_source=blog10" target="_blank"><img class="maxwidth" src="http://img.blog.csdn.net/20170928113144608" alt="" title=""></a></dt>            <dd>                <div class="summary">                    <h2><a href='http://edu.csdn.net/topic/python1?utm_source=blog10' target='_blank'>伤心啊!年度热门编程语言排行榜出来了...</a></h2>  <div class="summary">近期,IEEE Spectrum 发布了第四届顶级编程语言交互排行榜。结合 10 个线上数据源的 12 个标准,对 48 种语言进行了排行!此外,七牛云许式伟曾说过Go语言会取代Java...气氛... </div>                 </div>            </dd>        </dl--><script>    (function() {        var s = "_" + Math.random().toString(36).slice(2);        document.write('<div id="' + s + '"></div>');        (window.slotbydup=window.slotbydup || []).push({        id: '4765209',        container: s,        size: '808,120',        display: 'inlay-fix'        });    })();</script>        <dl class="clearfix csdn-tracking-statistics" data-mod="popu_387" data-poputype="feed"  data-feed-show="false"  data-dsm="post">            <dd>                <h2><a href="/why1happy/article/details/51280105"  target="_blank" strategy="BlogCommendFromBaidu_2">在unity3d中用EasyTouch的操纵杆控制相对于不同角度的摄像机的第三人物视角的相对位移的代码段</a></h2>                <div class="summary">                    using UnityEngine;

using System.Collections;

public class AvatarJoystickCtrl
{

protected CAnim...                </div>                <ul>                    <li class="avatar_img"><a href="http://blog.csdn.net/why1happy" target="_blank" strategy="BlogCommendFromBaidu_2"><img src="http://avatar.csdn.net/8/C/8/2_why1happy.jpg" alt="why1happy" title="why1happy"></a></li>                    <li class="user_name"><a href="http://blog.csdn.net/why1happy">why1happy</a></li>                    <li class="time">2016-04-29 10:54</li>                    <li class="visited_num"><i class="icon iconfont icon-read"></i><span>257</span></li>                </ul>            </dd>        </dl>        <dl class="clearfix csdn-tracking-statistics" data-mod="popu_387" data-poputype="feed"  data-feed-show="false"  data-dsm="post">            <dd>                <h2><a href="/qinyuanpei/article/details/26204177"  target="_blank" strategy="BlogCommendFromBaidu_3">[Unity3D]Unity3D游戏开发之使用EasyTouch虚拟摇杆控制人物移动</a></h2>                <div class="summary">                    大家好,欢迎大家关注我的博客,我是秦元培,我的博客地址是blog.csdn.net/qinyuanpei。今天呢,我们来一起学习在Unity3D中使用EasyTouch虚拟摇杆来控制人物移动。尽管Un...                </div>                <ul>                    <li class="avatar_img"><a href="http://blog.csdn.net/qinyuanpei" target="_blank" strategy="BlogCommendFromBaidu_3"><img src="http://avatar.csdn.net/4/D/2/2_qinyuanpei.jpg" alt="qinyuanpei" title="qinyuanpei"></a></li>                    <li class="user_name"><a href="http://blog.csdn.net/qinyuanpei">qinyuanpei</a></li>                    <li class="time">2014-05-20 05:40</li>                    <li class="visited_num"><i class="icon iconfont icon-read"></i><span>21216</span></li>                </ul>            </dd>        </dl>        <!-- 广告位:PC端-博客详情通栏7(feed流)-808*120 --><script> (function() {    var s = "_" + Math.random().toString(36).slice(2);   document.write('<div id="' + s + '"></div>');    (window.slotbydup=window.slotbydup || []).push({        id: '4983339',       container: s,        size: '808,120',        display: 'inlay-fix'    }); })();  </script>        <dl class="clearfix csdn-tracking-statistics" data-mod="popu_387" data-poputype="feed"  data-feed-show="false"  data-dsm="post">            <dd>                <h2><a href="/avi9111/article/details/71156693"  target="_blank" strategy="BlogCommendFromBaidu_5">真Unity3d_人物摇杆操作</a></h2>                <div class="summary">                    一开始。。。。。

加了时间因子之后

双线程渲染

由于45度镜头,需要再调整方向夹角()

缺少打击感
对于mmoa,王者荣耀之流的游戏,重在操作流畅和技能准确性,以及服务器和网络的稳定,…


  • avi9111
  • avi9111
  • 2017-05-03 23:46
  • 210


        <dl class="clearfix csdn-tracking-statistics" data-mod="popu_387" data-poputype="feed"  data-feed-show="false"  data-dsm="post">            <dd>                <h2><a href="/nateyang/article/details/7471203"  target="_blank" strategy="BlogCommendFromBaidu_6">unity3d游戏物体跟着鼠标方向移动</a></h2>                <div class="summary">                    效果:当点击鼠标左键时,游戏对象会朝鼠标点击的方向移动,类似魔兽争霸一样。

思路:把鼠标的坐标转化成世界坐标(鼠标默认是屏幕坐标),然后当点击鼠标时,物体将朝着鼠标的世界坐标方向移动。
如果你看到…


  • dlnuchunge
  • dlnuchunge
  • 2012-04-17 21:16
  • 12813


        <dl class="clearfix csdn-tracking-statistics" data-mod="popu_387" data-poputype="feed"  data-feed-show="false"  data-dsm="post">            <dd>                <h2><a href="/yucan1219/article/details/51188542"  target="_blank" strategy="BlogCommendFromBaidu_7">Unity中关于施加力的角度弧度问题</a></h2>                <div class="summary">                    大学四年加上工作一年,中学的知识都忘到脑后了,今天遇到一个需要给物体施加某个方向的力的问题,捣腾了半天,最后才明白过来这么简单。特此记录一下。

需求:跑酷游戏,按照当前玩家的朝向,扔出武器(即给武器一…


  • yc1219
  • yc1219
  • 2016-04-19 11:11
  • 1667


        <dl class="clearfix csdn-tracking-statistics" data-mod="popu_387" data-poputype="feed"  data-feed-show="false"  data-dsm="post">            <dd>                <h2><a href="/gary_888/article/details/51407635"  target="_blank" strategy="BlogCommendFromBaidu_8">Unity3D之Easytouch控件控制主角移动</a></h2>                <div class="summary">                    开发步骤:

1.导入Charactor Controller资源包;
2.导入Easy Touch 3.1.0的资源包;
3.创建一个人物模型;
4.新建一个Plane作为地板。
5.新建一…


  • Gary_888
  • Gary_888
  • 2016-05-14 19:48
  • 3308


        <dl class="clearfix csdn-tracking-statistics" data-mod="popu_387" data-poputype="feed"  data-feed-show="false"  data-dsm="post">            <dd>                <h2><a href="/caojianhua1993/article/details/53036693"  target="_blank" strategy="BlogCommendFromBaidu_9">Unity如何限制3D物体的旋转角度</a></h2>                <div class="summary">                    在项目开发中用到了限制物体的旋转角度,因为做的事移动端的,所以下面的代码是触摸屏的,如果有需要你可以把操作方式改为PC的。

    if (1 == Input.touchCount)



  • caojianhua1993
  • caojianhua1993
  • 2016-11-04 16:55
  • 3627


    </div></main><aside>    <div class="right_box user_info">        <dl class="inf_bar clearfix">            <dt class="csdn-tracking-statistics" data-mod="popu_381">                <a href="http://blog.csdn.net/ybhjx" target="_blank">                    <img src="http://avatar.csdn.net/B/8/C/1_ybhjx.jpg" class="avatar_pic">                </a>                <span class="medals" title="">            <svg class="icon" aria-hidden="true">            </svg>          </span>            </dt>            <dd>                <h3 class="csdn-tracking-statistics"  data-mod="popu_380"><a href="http://blog.csdn.net/ybhjx" target="_blank" id="uid">ybhjx</a></h3>                <span  class="csdn-tracking-statistics" data-mod="popu_379"><a class="btn btn-redborder-small "  id="span_add_follow" target="_self">+关注</a></span>            </dd>        </dl>        <div class="inf_number_box clearfix">            <dl>                <dt>原创</dt>                <dd>31</dd>            </dl>            <dl>                <dt>粉丝</dt>                <dd id='fan'>47</dd>            </dl>            <dl>                <dt>喜欢</dt>                <dd>0</dd>            </dl>                             <dl>          <dt>码云</dt>          <dd>&nbsp;</dd>        </dl>        </div>    <div class="writings">          <div class="public_signal clearfix">            <h3>他的最新文章</h3>            <a href="http://blog.csdn.net/ybhjx" target="_blank" class="more_z"><span>更多文章</span></a>          </div>            <ul class="inf_list clearfix csdn-tracking-statistics" data-mod="popu_382">                <li class="clearfix">                    <a href="/ybhjx/article/details/77345106" target="_blank">MSSQL 服务器主体 无法在当前安全上下文下访问数据库,错误:916</a>                </li>                <li class="clearfix">                    <a href="/ybhjx/article/details/74489623" target="_blank">WinDbg设置和常用调试命令</a>                </li>                <li class="clearfix">                    <a href="/ybhjx/article/details/73928122" target="_blank">U3D中在Grid中增加和修改Cell的部分代码 - 自己学习积累</a>                </li>                <li class="clearfix">                    <a href="/ybhjx/article/details/73826712" target="_blank">UGUI中Grid+Toggle的制作滚动下列</a>                </li>            </ul>        </div>    </div>    <div class="extension_other csdn-tracking-statistics" data-mod="popu_389">                    <!--u3032528-->        <div class="flashrecommend">
(function() { var s = "_" + Math.random().toString(36).slice(2); document.write('
'); (window.slotbydup=window.slotbydup || []).push({ id: '4770930', container: s, size: '300,250', display: 'inlay-fix' });})();
        </div>    </div>    <div class="fixRight">        <div class="right_box padb0 csdn-tracking-statistics" data-mod="popu_391">            <h3 class="tit"><span><em>在线课程</em></span></h3>            <ul class="edu_li clearfix">              <li>                <div>                  <a href="http://edu.csdn.net/huiyiCourse/detail/611?utm_source=blog7" target="_blank">                    <img src="http://img.bss.csdn.net/201711241011569449.jpg" alt="数据科学家,从入门到精进" title="数据科学家,从入门到精进">                  </a>                </div>                <div>                  <p><a href="http://edu.csdn.net/huiyiCourse/detail/611?utm_source=blog7" target="_blank">数据科学家,从入门到精进</a></p>                  <p>讲师:李江龙</p>                </div>              </li>              <li>                <div>                  <a href="http://edu.csdn.net/huiyiCourse/series_detail/72?utm_source=blog7" target="_blank">                    <img src="http://img.bss.csdn.net/201711241006496339.png" alt="【明日开播】SDCC 2017之前端技术实战线上峰会" title="【明日开播】SDCC 2017之前端技术实战线上峰会">                  </a>                </div>                <div>                  <p><a href="http://edu.csdn.net/huiyiCourse/series_detail/72?utm_source=blog7" target="_blank">【明日开播】SDCC 2017之前端技术实战线上峰会</a></p>                  <p>讲师:司徒正美</p>                </div>              </li>            </ul>        </div>        <!--u3032529-->        <!-- <div class="extension_other csdn-tracking-statistics baidu_box" data-mod="popu_395">            <script type="text/javascript" src="http://mpb1.iteye.com/cxpdpmumfaedgm.js"></script>        </div> -->        <div class="extension_other csdn-tracking-statistics bottomRcom" data-mod="popu_389" style="position:absolute;z-index:-5;opacity:0;pointer-events:none">                    <!--u3032528-->            <div class="flashrecommend">            <script type="text/javascript" src="http://mpb1.iteye.com/bwocoltlyzdec.js"></script>            </div>        </div>    </div>    <div class="user-hotArticle">      <h3>热门文章</h3>      <ul class="hotArticle-list csdn-tracking-statistics" data-mod="popu_521">        <li>          <a href="/ybhjx/article/details/50833420">window命令行启动Mysql并安装成服务</a>          <div class="read list-left"><i class="icon iconfont icon-read"></i><span>13698</span></div>        </li>        <li>          <a href="/ybhjx/article/details/50847642">利用ul 和 li 实现导航条上的下拉菜单</a>          <div class="read list-left"><i class="icon iconfont icon-read"></i><span>8540</span></div>        </li>        <li>          <a href="/ybhjx/article/details/50393420">写MySQL存储过程实现动态执行SQL</a>          <div class="read list-left"><i class="icon iconfont icon-read"></i><span>6809</span></div>        </li>        <li>          <a href="/ybhjx/article/details/51193636">c# 一维数组和二维数组的定义几种方式</a>          <div class="read list-left"><i class="icon iconfont icon-read"></i><span>6453</span></div>        </li>        <li>          <a href="/ybhjx/article/details/50390658">Unity3d移动代码(脚本)向前向后以及转弯,速度转向控制</a>          <div class="read list-left"><i class="icon iconfont icon-read"></i><span>5994</span></div>        </li>      </ul>    </div></aside>

  • 1
阅读全文
0 0
原创粉丝点击