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是可以调节的参数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值