找回密码
 注册帐号

扫一扫,访问微社区

自学总结 旋转、代码创建对象及物理,勾股定义(九)

6
回复
3967
查看
[ 复制链接 ]
排名
1
昨日变化

1592

主题

3671

帖子

1万

积分

Rank: 16

UID
2
好友
123
蛮牛币
3431
威望
121
注册时间
2013-5-19
在线时间
2333 小时
最后登录
2019-9-20

原创先锋

2014-6-5 10:31:14 显示全部楼层 阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x

今天总结的东西有点多,也很重要(包括了物理,数学函数以及勾股定义的应用,不得不说真牛)

同时也实在想不清楚今晚我是不是自己变聪明了(小小自恋下) 居然能记下这么多东西  嘿嘿


一、首先 ,有两段代码都可表示围绕一个东西旋转代码
  1. //定义一个旋转速度
  2. float trunspeed=25.0f;
复制代码
1.模型自己设置好以自身为中心点,那么旋转代码如下
  1. //设置围绕Y轴旋转
  2. //gameObject.transform.Rotate(new Vector3(0,trunspeed*Time.deltaTime*Input.GetAxis("Horizontal"),0));
复制代码
2.如果模型没有设置以自身为中心点 ,那么我们将如何实现自身旋转呢?

首先,创建一个Capsule对象 然后拖到要旋转物体上  记下它的坐标
然后,请看下面代码
  1. //设置围绕一个新的东西(new Vector3(0f,-0.7387342f,3.401296f))以Y轴(new Vector3(0f,1.0f,0f),)旋转  
  2. gameObject.transform.RotateAround(new Vector3(0f,-0.7387342f,3.401296f),
  3. new Vector3(0f,1.0f,0f),
  4. trunspeed*Time.deltaTime*Input.GetAxis("Horizontal"));
复制代码
通过上述2种方法即可实现都以自身为中心旋转啦

二、好了,接下来我将总结的是如何用代码创建一个具有钢体属性的实体对象

首先,定义3个变量
  1. //申明一个钢体对象
  2. public Rigidbody tempBasketball;
  3. //声明一个游戏对象
  4. public Transform hand;
  5. //继续声明一个钢体
  6. Rigidbody Basketball;
复制代码
然后,在程序中的Start ()方法中输入如下代码
  1. //创建一个对象 经典代码  设置一个具有钢体对象的物体在 合适的坐标 合适的角度
  2. Basketball=Instantiate(tempBasketball,hand.position,hand.rotation) as Rigidbody;
  3. //绑定改对象到父节点上(我们这里指我们运动员的右手上)
  4. Basketball.transform.parent=hand;
  5. //初始化设置该对象不具备重力
  6. Basketball.rigidbody.useGravity=false;
复制代码

好了,通过以上代码即可实现创建一个钢体对象,这里需要注意的是hand为一个空的GameObject 而他的实体则在 tempBasketball就有了,
所以我们只管在场景窗口中设置好这个空的GameObject 的坐标及角度就ok啦。


三、接下来我将总结的是 如何设置一个篮球具有物理特性

首先,我们来分析下这个篮球,
1.它向下掉,说明有重力,那么我们将给它加上 Component-> Phyisc->Rigidbody(钢体属性)。
2.它碰到地面就不会再向下掉了,那么我们将给它加上一个Component-> Phyisc->Sphere Collider(球形碰撞体)。
3.它碰到地面会弹跳,说明它具有弹性,那么我们将给它加上一个弹性材质
  ( 导入材质 Assets->Import Package-> Phyisc Materials
  然后在碰撞体属性Material中选择Bouncy(弹性材质)   设置Biunciness能量减少 )

话说,万法归一 ,其他物体对象只要这样分析设置 基本完全可以设置出他们不同的物理特性了。

四、好了,通过前面代码及物理特性设置 现在总结下如何将一个篮球投出去
重点也在这里  将用到数学函数及勾股定义。
  1. //投出篮球脱手
  2. Basketball.transform.parent=null;
  3. //脱手后篮球具有重力特性
  4. Basketball.rigidbody.useGravity=true;
  5. //脱手后篮球以抛物线飞出去的速度
  6. Basketball.rigidbody.velocity=new Vector3(0f,3.1f,-6f);
复制代码
上面表示我们站着不动 投出一个篮球,可是如果我们旋转角度投篮当如何呢?
  1. //定义选择角度
  2. float angles;
  3. //定义x,z轴的速度
  4. float speedX,speedZ;

  5. //获取旋转角度  减180表示我所设置的运动员本身就旋转了180,减掉就是准确的旋转角度
  6. angles=gameObject.transform.eulerAngles.y-180;
  7. //<font color="#ff0000"><b>x的速度=初始速度*    Mathf.Tan->数学函数      ,angles*Mathf.Deg2Rad->(角度转换弧度)</b></font>
  8. speedX=-3.1F*Mathf.Tan(angles*Mathf.Deg2Rad);
  9. //<b><font color="#ff0000">x的速度=初始速度*Mathf.Cos->沟谷定义    ,angles*Mathf.Deg2Rad->(角度转换弧度)</font></b>
  10. speedZ=-6F/Mathf.Cos(angles*Mathf.Deg2Rad);
  11. //脱手后篮球以抛物线飞出去的速度
  12. Basketball.rigidbody.velocity=new Vector3(speedX,3.1f,speedZ);
复制代码
ok,搞定运行游戏
1.可以清楚看到投出篮球抛物线的样子

1.jpg

2.撞击篮板反弹到篮筐(物理特性很真实吧)

2.jpg

3.在篮筐滚了一圈  (物理特性很真实吧)

3.jpg

4.进球

4.jpg


嘿嘿 ,通过今天总结,我的街头篮球游戏又离成功更近一步啦,开心啊,呵呵....

来自QQ群:290248177     By. ζޓއއއ 随风去旅行  QQ:512241701




unity3d 物体碰撞;unity3d转换场景;unity3d 5 新特性;unity3d time.time;unity3d如何创建材质;unity3d 获得旋转角度;unity3d y轴;unity3d碰撞不反弹;unity3d物体速度;unity3d 移动速度;unity3d轴向问题;unity3d 如何获取对象;unity3d物体碰撞后移动;unity3d场景转换;unity3d 5.0 新特性;unity3d 5.2新特性;unity3d 新特性;unity3d time;unity3d 创建材质;unity3d旋转角度;unity3d旋转角度对比;unity3d 最小旋转角度;unity3d 旋转一定角度;unity3d y轴移动;unity3d碰撞反弹;unity3d 物体 速度归零;unity3d 速度;unity3d轴变了;unity3d获取 对象
回复

使用道具 举报

7日久生情
2079/5000
排名
598
昨日变化

0

主题

458

帖子

2079

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
3744
好友
0
蛮牛币
4982
威望
0
注册时间
2013-9-12
在线时间
240 小时
最后登录
2016-5-20
2014-9-16 09:37:44 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

4四处流浪
410/500
排名
6050
昨日变化

0

主题

104

帖子

410

积分

Rank: 4

UID
4255
好友
1
蛮牛币
416
威望
0
注册时间
2013-9-21
在线时间
78 小时
最后登录
2014-5-13
2014-9-23 15:31:38 显示全部楼层
牛啊,跪求源码~
回复 支持 反对

使用道具 举报

6蛮牛粉丝
1459/1500
排名
1177
昨日变化

3

主题

243

帖子

1459

积分

Rank: 6Rank: 6Rank: 6

UID
3935
好友
1
蛮牛币
3190
威望
0
注册时间
2013-9-16
在线时间
225 小时
最后登录
2019-6-30
2014-9-27 21:52:52 显示全部楼层
恩,不错,但想看看源码啊!
回复 支持 反对

使用道具 举报

4四处流浪
469/500
排名
6734
昨日变化

2

主题

201

帖子

469

积分

Rank: 4

UID
11758
好友
3
蛮牛币
857
威望
0
注册时间
2014-1-4
在线时间
60 小时
最后登录
2015-1-15
QQ
2015-2-10 11:46:54 显示全部楼层
没源码  看这个教程 没啥用哈                                             
回复 支持 反对

使用道具 举报

3偶尔光临
276/300
排名
7254
昨日变化

2

主题

37

帖子

276

积分

Rank: 3Rank: 3Rank: 3

UID
16754
好友
0
蛮牛币
458
威望
0
注册时间
2014-3-6
在线时间
56 小时
最后登录
2015-1-6
2015-5-5 19:11:11 显示全部楼层
谢谢分享。。。。。。。。
回复

使用道具 举报

排名
17817
昨日变化

0

主题

31

帖子

83

积分

Rank: 2Rank: 2

UID
27709
好友
0
蛮牛币
97
威望
0
注册时间
2014-6-2
在线时间
18 小时
最后登录
2015-3-28
2015-6-2 13:42:27 显示全部楼层
学习中................
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则