Unity-3D 第一个小游戏开发

2018-04-10  本文已影响0人  一世长安乱
using UnityEngine;
using System.Collections;

public class Zembie : MonoBehaviour {
    public Sprite[] sprites;//建立精灵数组,用来存储剪下来的图
    public float framesspeed;//运动的速度
    private SpriteRenderer spriterenderer;//定义一个渲染器
    // Use this for initialization
    void Start () {
        spriterenderer = GetComponent<SpriteRenderer>();
    }
    
    // Update is called once per frame
    void Update () {
        int index = (int)(Time.timeSinceLevelLoad * framesspeed);//指数来代表时间和速度的乘积
        index = index % sprites.Length;//因为用来显示精灵数组,大小不能超过精灵数组的长度
        spriterenderer.sprite = sprites[index];//渲染器使图片动起来
    }
}

using UnityEngine;
using System.Collections;

public class ZembieControl : MonoBehaviour {
    public float movespeed;
    private Vector3 moveDirection; //vector3 三维 vector2 二维
    public float turnspeed;//转头   以单元为尺寸
    // Use this for initialization
    void Start () {
        moveDirection = Vector3.right;
    }
    
    // Update is called once per frame
    void Update () {
        Vector3 currentPostion = transform.position; //初始位置
        if (Input.GetButton ("Fire1"))
 {            //那是数字1 不是l  Fire1就是鼠标左键 Fire2就是鼠标右键
            Vector3 moveToward = Camera.main.ScreenToWorldPoint (Input.mousePosition);
            //移动后的方向即为鼠标左键所点的方向
            moveDirection = moveToward - currentPostion;
            moveDirection.z = 0;
            moveDirection.Normalize ();//归一化
        }
        Vector3 targetPostion = currentPostion + moveDirection * movespeed;//目标方向
        transform.position = Vector3.Lerp (currentPostion, targetPostion, Time.deltaTime);
        //Vector3.Lerp()差值函数
        //由于不是闪现到达,所以需要时间差值移动(原位置,目标位置,差值时间)
        float tagetAngle = Mathf.Atan2 (moveDirection.y, moveDirection.x) * Mathf.Rad2Deg;
        //求角度   2:to   Mathf.Rad2Deg 弧度求角度 
        transform.rotation = Quaternion.Slerp (transform.rotation, Quaternion.Euler (0, 0, tagetAngle), turnspeed * Time.deltaTime);
        //rotation 旋转 p1:目标位置 p2:角度 p3:每次旋转多少
    }
}

运行之后存有bug,鼠标点击之后僵尸会往那个方向跑,但是到达目的地之后并不会停下

上一篇下一篇

猜你喜欢

热点阅读