unity游戏暂停&动画加载&场景跳转&射线检测&鼠标滚轮控制

(一)游戏暂停的方法

Time.timeScale = 0;时间流动速度变为0

但要想使 translate位移动画也停住,所有Transform的移动都应该写在update并跟Time.deltaTime相乘的,这样才能使速度稳定,所以一旦Time.timeScale = 0; 这些位置变动就会一起停掉的。

(二)动画序列帧加载

using UnityEngine;
using System.Collections;
public class Animation : MonoBehaviour {
public Sprite[] sprites; 
public float framesPerSecond;
private SpriteRenderer spriteRenderer;

void Start () {

spriteRenderer = renderer as SpriteRenderer;
}
 

  void Update () {
int index = (int)(Time.timeSinceLevelLoad * framesPerSecond); 
index = index % sprites.Length; 
spriteRenderer.sprite = sprites [index];
}
}

(三)场景跳转

Application.LoadLevel("场景名字");

(四)射线检测

通过射线检测可以定位鼠标的点击位置,进一步可以实现事件

PS:开发过程中鼠标左键点击事件在手持设备上会自动转化为单点触屏事件

  void Update () {
if (Input.GetMouseButtonDown (0)) {


Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
Vector2 origin = new Vector2 (ray.origin.x, ray.origin.y);  
Vector2 direction = new Vector2 (ray.direction.x, ray.direction.y);  
RaycastHit2D hit = Physics2D.Raycast (origin, direction);  
if (hit != null) {  
if (hit.collider == gameObject.collider2D) {  
Debug.Log ("Raycast the gameobject success!");  

}  
}  
}
}

(四)鼠标滚轮控制

鼠标滚轮控制摄像机和物体的移动

if( Input.GetAxis("Mouse ScrollWheel") != 0 )

{
this.gameObject.transform.Translate(new Vector3(0,0,Input.GetAxis("Mouse ScrollWheel")*Time.deltaTime*500));
}
上述代码放在Update ()函数中,其中gameObject是摄像机或者物体对象,500是可以调节的参数。

你可能感兴趣的:(unity)