Unity游戏开发的数学与物理 1 ( 物体延水平方向运动 )
2015-04-21 23:11
906 查看
物体延水平方向运动
工程实现需注意:
- 摄像机的设置 Projection Orthographic
- Start() 和 Update()的执行顺序与执行次数
- 屏幕坐标与空间坐标的转换
- 关于Time.deltaTime
- x += v; v = -v;
工程实现需注意:
- 摄像机的设置 Projection Orthographic
- Start() 和 Update()的执行顺序与执行次数
- 屏幕坐标与空间坐标的转换
- 关于Time.deltaTime
- x += v; v = -v;
using UnityEngine; using System.Collections; //匀速运动 public class UnirormMotionTest : MonoBehaviour { //物体的位置 float posX = 0; //物体在x方向上的速度 float speed = 3; //屏幕的右上像素在世界空间的坐标 Vector3 ScreenRightTopPos; //屏幕的左下像素在世界空间的坐标 Vector3 ScreenLeftBottomPos; //box的半宽度 float boxHalfWidth; //屏幕坐标的示意图 //+-----------+(Screen.width, Screen.height) //| | //| screen | //| | //+-----------+ //(0, 0) void Start() { //将屏幕右上的像素转换为世界空间的坐标 ScreenRightTopPos = Camera.main.ScreenToWorldPoint(new Vector3(Screen.width, Screen.height, 0)); //将屏幕右下的像素转换为世界空间的坐标 ScreenLeftBottomPos = Camera.main.ScreenToWorldPoint(new Vector3(0, 0, 0)); //box的半宽度 boxHalfWidth = transform.localScale.x * 0.5f; } void Update () { if (transform.localPosition.x + boxHalfWidth > ScreenRightTopPos.x || transform.localPosition.x - boxHalfWidth < ScreenLeftBottomPos.x) { //改变方向 speed = -speed; } posX += speed * Time.deltaTime; transform.localPosition = new Vector3(posX, 0.5f, 0); } }
相关文章推荐
- Unity游戏开发的数学与物理 3 ( 让物体延任意方向移动 )
- Unity游戏开发的数学与物理 2 ( 通过键盘控制物体的运动 )
- Unity游戏开发的数学与物理 4 ( 在物体运动中加入重力 )
- 【Visual C++】游戏开发笔记十八 游戏基础物理建模(一) 匀速与加速运动
- 游戏开发中的数学和物理算法(3):点之间的距离
- 游戏开发中的数学和物理算法(12):矢量的加减法
- 游戏开发中的数学和物理算法(3):点之间的距离
- 【Visual C++】游戏开发笔记十八 游戏基础物理建模(一) 匀速与加速运动
- 游戏开发中的数学和物理算法(13):点积和叉积
- 游戏开发中的数学和物理算法(6):圆和球的碰撞检测
- 游戏开发中的数学和物理算法(8):三角函数
- 游戏开发中的数学和物理算法(15):矩阵的加减法
- 游戏开发中的数学和物理算法(18):缩放
- 学习手机游戏开发的两个方向 Cocos2d-x 和 Unity 3D/2D,哪个前景更好?
- 【Visual C++】游戏开发笔记十八 游戏基础物理建模(一) 匀速与加速运动
- 关于Unity游戏开发方向找工作方面的一些个人看法
- 游戏开发中的数学和物理算法(14):矩阵的相等和转置
- 游戏开发中的数学和物理算法(2):定义线
- 游戏开发中的数学和物理算法(10):矢量 vs 标量
- android+unity游戏开发之求物体间的距离