unity3d脚本之鸡零狗碎
2016-03-11 10:42
253 查看
这里记录的是unity3d开发中用到的鸡零狗碎的代码片段。
背景作为数组,对象的position.Z影响移动速度
1、键盘方向键移动对象
public class KeyboardMove : MonoBehaviour { private float speed = 5f; void FixedUpdate () { if (Input.GetAxis ("Horizontal") != 0 || Input.GetAxis ("Vertical") != 0) { Vector2 movement = new Vector2 (Input.GetAxis ("Horizontal"), Input.GetAxis ("Vertical")); transform.Translate (movement * speed * Time.deltaTime); } } }
2、2d绑定对象的大小
gameObject.GetComponent<SpriteRenderer>().sprite.bounds.size.x; gameObject.GetComponent<SpriteRenderer>().sprite.bounds.size.y;
3、从屏幕下方消失的时候,销毁对象
public class DestroyInvisible : MonoBehaviour { void OnBecameInvisible () { if (Camera.main != null) { if (transform.position.y < Camera.main.ScreenToWorldPoint (new Vector3 (0f, 0f, 0f)).y) { Destroy (gameObject); } } else { Debug.Log("Camera.main is null."); } } }
4、2D滚动视差背景
从老外那抄的,原理我说不清楚,这个是纵轴,也就是Y轴滚动using UnityEngine; using System.Collections; public class parallaxY : MonoBehaviour { public Transform[] backgrounds; private float[] parallaxScales; public float smoothing = 1f; private Transform cam; private Vector3 previousCamPos; void Awake () { cam = Camera.main.transform; } void Start () { previousCamPos = cam.position; parallaxScales = new float[backgrounds.Length]; for (int i=0; i<backgrounds.Length; i++) { parallaxScales [i] = backgrounds [i].position.z * -1; } } void Update () { for (int i=0; i<backgrounds.Length; i++) { float parallax=(previousCamPos.y -cam.position.y)*parallaxScales[i]; float backgroundTargetPosY=backgrounds[i].position.y+parallax; Vector3 backgroundTargetPos = new Vector3(backgrounds[i].position.x,backgroundTargetPosY,backgrounds[i].position.z); backgrounds[i].position=Vector3.Lerp(backgrounds[i].position,backgroundTargetPos,smoothing*Time.deltaTime); } previousCamPos = cam.position; } }
背景作为数组,对象的position.Z影响移动速度
相关文章推荐
- Unity中用触摸控制物体旋转和放大
- [GUI] 图片背景是黑色的,在unity中怎么变成透明
- Unity原生实现录音功能
- Unity Diffuse Metal Shader Mod
- UNITY3D shader学习心得<一> properties属性接口
- UNITY3D shader学习心得<二> subShader
- UNITY3D shader学习心得<三> Vertex and Fragment Shader
- unity3D中的工程导入eclipse做二次开发
- unity3D中的工程导入eclipse做二次开发
- unity 快速创建小地图
- unity 快速创建小地图
- Unity3D:unity与Android相互传递消息 & unity与ios相互传递消息
- Unity5.0 摄像机 Clear Flags和Culling Mask属性用途详解
- 【转】unity基础问题汇总
- Unity3D 学习笔记4 —— UGUI+uLua游戏框架
- Android NDK编译C/C++结合Unity实现本地数据共享
- Unity 与 OC 不得不说的故事。。
- 【风宇冲】Unity3D性能优化:DrawCall优化
- Unity(64bit)5.1 打开无故出现框框,纹理不见了
- unity与android交互