1. 设置鼠标指针图标

  Build Setting -> Player Setting

  

2. 添加雾的效果

  Window->Lighting->Settings。

  

3. 任意键按下事件

  1. // Use this for initialization
  2. void Start () {
  3. // 查找 ButtonContainer 实体
  4. buttonContainer = this.transform.parent.Find("ButtonContainer").gameObject;
  5. }
  6.  
  7. // Update is called once per frame
  8. void Update () {
  9. if (!isAnyKeyDown)
  10. {
  11. if (Input.anyKey) // 任意键按下
  12. {
  13. ShowButton(); // 显示按钮界面
  14. }
  15. }
  16. }
  17.  
  18. void ShowButton()
  19. {
  20. buttonContainer.SetActive(true); // 显示按钮界面
  21. this.gameObject.SetActive(false); // 隐藏 pressanykey
  22. isAnyKeyDown = true;
  23. }

4. 添加游戏背景音乐和鼠标点击声音

  Audio Source

    

  NGUI Play Sound

    

5. 点击 OK 按钮保存数据

  1. public void OnOkButtonClick()
  2. {
  3. PlayerPrefs.SetInt("SelectedCharacterIndex", selectIndex); // 保存数据
  4. PlayerPrefs.SetString("Name", nameInput.value);
  5. // TODO 转到下一场景
  6. }

6. 根据鼠标点击改变人物朝向

  1. // 射线检测
  2. Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
  3. RaycastHit hitInfo;
  4. bool isCollider = Physics.Raycast(ray, out hitInfo);
  5. if (isCollider && hitInfo.collider.tag == Tags.ground)
  6. {
  7. LookAtTarget(hitInfo.point); // 朝向目标位置
  8. }
  1. // 朝向目标位置
  2. void LookAtTarget(Vector3 target)
  3. {
  4. target.y = transform.position.y; // 绕y轴旋转,注意高度要保持一致
  5. transform.LookAt(target); // 朝向目标
  6. }

7. 控制人物移动

  Character Controller。

    

  1. void Update () {
  2. // 得到当前位置与目标位置的距离
  3. float distance = Vector3.Distance(dir.targetPos, transform.position);
  4. if (distance > 0.1f) // 若没有到达目标位置
  5. {
  6. // 简单移动
  7. controller.SimpleMove(transform.forward * speed);
  8. }
  9. }

8. 人物移动动画的播放

  

  1. // LateUpdate 运行稍晚于 Update
  2. void LateUpdate () {
  3. if (move.state == CharacterState.Moving) // 移动状态
  4. {
  5. PlayAnimation("Run");
  6. }
  7. else if(move.state == CharacterState.Idle) // 静止状态
  8. {
  9. PlayAnimation("Idle");
  10. }
  11. }
  12.  
  13. // 播放animationName动画
  14. void PlayAnimation(string animationName)
  15. {
  16. animation.CrossFade(animationName, 0.1f);
  17. }

9. 相机随人物移动

  1. // Use this for initialization
  2. void Start () {
  3. // 获取人物位置
  4. player = GameObject.FindGameObjectWithTag(Tags.player).transform;
  5. offset = transform.position - player.position; // 人物位置与相机偏移
  6. transform.LookAt(player); // 相机看向人物
  7. }
  8.  
  9. // Update is called once per frame
  10. void Update () {
  11. transform.position = player.position + offset; // 相机跟随人物
  12. }

10. 控制视野的远近

  1. // 鼠标中轴控制视野的远近
  2. void ScrollView()
  3. {
  4. distance = offset.magnitude; // 相机与人物的距离
  5. // 根据中轴控制视野远近
  6. distance += Input.GetAxis("Mouse ScrollWheel") * scrollSpeed;
  7. offset = offset.normalized * distance;
  8. }

11. 控制视野的旋转

  1. // 控制视野旋转
  2. void RotateView()
  3. {
  4. if (Input.GetMouseButtonDown()) // 监听鼠标左键
  5. {
  6. isRotate = true;
  7. }
  8. if (Input.GetMouseButtonUp())
  9. {
  10. isRotate = false;
  11. }
  12. if (isRotate)
  13. {
  14. // 以人物为中心,绕y轴旋转
  15. transform.RotateAround(player.position, Vector3.up, Input.GetAxis("Mouse X")*rotateSpeed);
  16. Vector3 originalPos = transform.position; // 记录当前位置和旋转
  17. Quaternion originalRot = transform.rotation;
  18. // 以人物为中心,绕视野x轴旋转
  19. transform.RotateAround(player.position, transform.right, -Input.GetAxis("Mouse Y")*rotateSpeed);
  20. float x = transform.eulerAngles.x;
  21. if (x < || x > ) // 控制上下旋转范围
  22. {
  23. transform.position = originalPos;
  24. transform.rotation = originalRot;
  25. }
  26.  
  27. offset = transform.position - player.position;
  28. }
  29. }

黑暗之光 Day1的更多相关文章

  1. NOIp2016 Day1&Day2 解题报告

    Day1 T1 toy 本题考查你会不会编程. //toy //by Cydiater //2016.11.19 #include <iostream> #include <cstd ...

  2. day1

    day1.py ][][: ][: ): : ]['lock'] = 0 json.dump(userlist_message, open(userlist, 'w')) break #输错次数到3次 ...

  3. day1作业--登录入口

    作业概述: 编写一个登录入口,实现如下功能: (1)输入用户名和密码 (2)认证成功后显示欢迎信息 (3)输错三次后锁定 流程图: readme: 1.程序配置文件: 黑名单文件blacklist.t ...

  4. luogu1003铺地毯[noip2011 提高组 Day1 T1]

    题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n 张地毯,编号从 1 到n .现在将这些地毯按照编号从小到大的顺序平行于 ...

  5. Python学习路程day1

    变量起名: 变量名如果太长,推荐使用下划线来分开,让人看得清晰明白.例:nums_of_alex_girl=19 .或者是驼峰写法,即首字母大写.例:NumOfAlexGf=18 注意:不合法的变量起 ...

  6. 团队项目——站立会议 DAY1

    团队项目--站立会议 DAY1        团队成员介绍(5人):张靖颜.何玥.钟灵毓秀.赵莹.王梓萱        今日(2016/5/6)为站立会议的第一天,一起对团队项目进行讨论,并对每个人的 ...

  7. Day1 login

    使用流程: 1.程序启动后,显示欢迎信息,提示用户输入用户名: 2.判断用户是否存在,不存在则提示重新输入,或者关闭程序:客户存在则提示客户输入密码: 3.判断密码是否正确,如果不正确则提示用户重新输 ...

  8. contesthunter CH Round #64 - MFOI杯水题欢乐赛day1 solve

    http://www.contesthunter.org/contest/CH Round %2364 - MFOI杯水题欢乐赛 day1/Solve Solve CH Round #64 - MFO ...

  9. noip2011提高组day1+day2解题报告

    Day1 T1铺地毯https://www.luogu.org/problem/show?pid=1003 [题目分析] 全部读入以后从最后一个往前找,找到一个矩形的范围覆盖了这个点,那这个矩形就是最 ...

随机推荐

  1. MyBatis之一对多映射查询sql配置文件。

    学生---文章的模型一对多模型 学生student.java类 package com.bjsxt.sxf.po; import java.util.Date; import java.util.Li ...

  2. service fabric docker 安装

    1. 镜像拉取 docker pull microsoft/service-fabric-onebox 2. 配置docker(daemon.json) { "ipv6": tru ...

  3. coredns 编译模式添加插件

    备注:    coredns 默认已经安装了一些插件,比如大家用的多的kubernetes etcd ... 但是我们可以自己编译插件,构建我们自己的 coredns 版本,方便集成使用 1. 项目结 ...

  4. kong 了解

      Kong 是在客户端和(微)服务间转发API通信的API网关,通过插件扩展功能.Kong 有两个主要组件: Kong Server :基于nginx  的服务器,用来接收 API 请求. Apac ...

  5. caddy server && caddyfile

    This page describes how to configure Caddy using the Caddyfile. Introduction The term "Caddyfil ...

  6. wordpress域名解析到了网站,但是点击其他页面会出现ip而不是域名

         1.前提域名可以访问你的网站证明解析没问题 2.那就是wp后台的设置问题,将url和站点url改为你的域名http://www.eovision.cc清理缓存即可 亲测可用,如果改了出现页面 ...

  7. Unit02: JDBC核心API

    Unit02: JDBC核心API db.properties 注意:如果使用连接池,可以在这个文件中增加对连接池的相关设置: 连接池参数,常用参数有: 初始连接数 最大连接数 最小连接数 每次增加的 ...

  8. JFreeChart API 说明(转)

    原地址 http://blog.csdn.net/mike_caoyong/article/details/7338160 JFreeChart目前是最好的java图形解决方案,基本能够解决目前的图形 ...

  9. (转)Inno Setup入门(五)——添加readme文件

    本文转载自:http://blog.csdn.net/yushanddddfenghailin/article/details/17250771 这个实现起来很简单,就是在[files]段中的某个预先 ...

  10. angula的factory service provider

    本人学了一段时间的angular的服务(factory.service.provider),有了自己的一些对于他们的见解,如果说的对,敬请赐教!!! 以后更新