游戏项目实践(一)
来源:互联网 发布:微博刷阅读量软件 编辑:程序博客网 时间:2024/06/05 15:34
下周将要完成一个简单游戏制作,现在先练练手,准备将来要用到功能实现。
一、实现主人公自动寻径
private NavMeshAgent agent//声明寻径组件
//在Start方法中初始化
void Start () {
agent=GetComponent<NavMeshAgent>();
}
void Update () {
//定义一条射线:Camera的近视角的一点转换成2d坐标,从屏幕上发射射线,方向指向光标点击坐标
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
//声明射线碰撞点
RaycastHit hit;
//射线碰撞成功,该游戏对象在碰撞点集合,并调用“动画化
if (Input.GetMouseButtonDown(0) && Physics.Raycast(ray, out hit)){
agent.destination = hit.point;
AnmitionRun();
}
}
二、主人公向敌人发射子弹
if (Input.GetMouseButtonDown(0) && Physics.Raycast(ray, out hit,50.0f)) {
//判断射线碰撞到敌人
if (hit.transform.gameObject.tag == "Enemy"){
//主人公停止移动
agent.destination=girl.transform.position;
//调用射击动画
AnmitionShot();
//主人公正面朝向敌人
transform.LookAt(hit.point);
//克隆子弹
GameObject clonedBullet = (GameObject)Instantiate(Bullet, transform.position, transform.rotation);
//设置给子弹添加力的速度矢量,指向的人
clonedBullet.rigidbody.velocity = (hit.point - transform.position) * Time.deltaTime * 100;
//子弹发射两秒后销毁,减少游戏运行内存
Destroy(clonedBullet, 2);
}
}
三、调用Animation动画
方法:GameObjiect.transform.animation.Play(string);
string 为预设体动画名字
四、GUI实现,显示血条
//人物现有血量
public static int blood=50;
//红色血条
public Texture2D red;
//血条底纹
public Texture2D black;
//当前血值
public int HP = 100;
//血条长度
public void OnGUI(){
//设置子体颜色
GUI.color = Color.red;
//根据主人公血量值占血条最大值的百分比显示红条宽度
nt blood_width = red.width * blood / HP;
GUI.Label(new Rect(20, 40, 100, black.height),"HP:");
//绘制黑色血条,
GUI.DrawTexture(new Rect(40, 40, black.width, black.height), black);
//绘制红色血条
GUI.DrawTexture(new Rect(40, 40, blood_width, red.height), red);
}
五、敌人可以有领域范围,主角进入该范围,将被追杀
1、寻经
2、 if (Vector3.Distance(transform.position, girl.position) <= 50)
{
agent.SetDestination(girl.position);
}
这里有很多U3D资源、U3D培训视频、U3D常见问题、U3D项目源码我们可以一起交流学习
0 0
- 游戏项目实践(一)
- 游戏项目实践(二)
- React 实践项目 (一)
- 游戏跨区的实践总结(一)
- HTML5游戏开发工具实践(一)
- 游戏实践一
- 项目管理实践入门初探(一)
- python实践项目(一)
- 第四周上机实践项目 项目3--随机函数应用游戏(1)猜数字游戏
- 使用JS--->2048游戏项目(一)
- 网易开源游戏服务器框架-Pomelo实践(一)
- Unity3D游戏开发最佳实践20技巧(一)
- Swift开发Sprite Kit游戏实践(一)
- 项目管理实践一 工具
- 项目管理实践一 工具
- thinkphp 搭建项目实践一
- 项目实践-导航管理一
- 第二周实践项目一
- 北斗兼容型高性能系列模组低价发布
- Fragment生命周期
- Pascal's Triangle
- 第311天(33W+1)
- u-blox发布首款一体化终极室内/室外定位模块NEO-M8L
- 游戏项目实践(一)
- "ORA-01502: 索引''或这类索引的分区处于不可用状态"的解决方案
- Android之给应用程序的icon添加未读消息个数提示(红圈内数字)
- BZOJ 2756 SCOI 2012 奇怪的游戏 二分+最大流
- Denaulay
- 学生成绩划及格线
- 不相关的外链有用吗?
- 外链的表现形式有哪几种?
- [设计模式学习笔记二][创建型模式][工厂方法(Factory Method)]