zoukankan      html  css  js  c++  java
  • unity3d制作小地图(MiniMap)的简单Demo

      1、在unity3d中创建新的项目,在新项目中创建Plane作为地面,根据自己的需求调整Plane的大小,同时给Plane添加Materials,这样易于区分地面与其他游戏物体区别;创建Directional light照亮游戏世界。

      2、在有游戏中添加两个Cube,添加CharacterController组件,一个命名为player,另一个命名为enemy,把它们的Layer设为Default;

      3、在player下创建Quad作为子对象,把它的Layer设为UI;把Quad的Transform的Rotation的x设置为90;Position的y值设置一个大于10的数(不要太大);这样在player的正上方就会有图标。

      

      

      4、对enemy做和player的一样处理,然后copy10个左右数量的enemy随机的放到不同的位置。

      

      5、在游戏中创建新Camera对象,把它作为player的子对象;调整Camera的位置和角度,让Camera在player的正上方俯视player。设置Camera的Culling Mask属性,把Default的勾去掉。设置ViewportRect的属性,X和Y是Camera投影到屏幕的原点(左下点为(0,0)点);W和H投影尺寸的宽和高。

      

      

      6、把Main Camera做为player的子对象调整位置和角度,设置Main  Camera的Culling Mask属性,把UI的勾去掉;分别给player、enemy添加脚本PlayerMove、EnemyMove;

    using UnityEngine;
    using System.Collections;
    
    public class PlayerMove : MonoBehaviour
    {
    
        private CharacterController controller;
        // Use this for initialization
        void Start()
        {
            controller = this.GetComponent<CharacterController>();
        }
    
        // Update is called once per frame
        void Update()
        {
    
            float h = Input.GetAxis("Horizontal");
            float v = Input.GetAxis("Vertical");
            Vector3 v1 = new Vector3(h, 0, v);
            controller.SimpleMove(v1 * 30.0f);
        }
    }
    using UnityEngine;
    using System.Collections;
    
    public class EnemyMove : MonoBehaviour
    {
    
        private CharacterController controller;
        float timer = 0;//控制敌人改变方向的计时器
        // Use this for initialization
        void Start()
        {
            controller = this.GetComponent<CharacterController>();
        }
    
        // Update is called once per frame
        void Update()
        {
            //敌人每3秒改变一次前进方向
            if (timer > 3)
            {
                float r = Random.Range(-90, 91);//敌人的旋转角度在-90~90度随机取值
                transform.rotation = Quaternion.Euler(0, r, 0);
                timer = 0;
            }
            else
            {
                controller.SimpleMove(transform.forward * 15);
                timer += Time.deltaTime * 1.0f;           
            }
        }
    }
    

      

  • 相关阅读:
    Java密钥库的不同类型 -- 概述
    【Spring Boot】Filter
    【VUE】开发环境
    【Java Web开发学习】Spring 注解
    【TongWeb】问题记录
    python的u,r,b分别什么意思?
    nil
    goland安装
    vscode调试和设置
    函数类型
  • 原文地址:https://www.cnblogs.com/jj391/p/4770844.html
Copyright © 2011-2022 走看看