回合制自己写的 战斗DEMO 加动画状态 Q键移动并攻击。 代码很简单。不要抱有太大希望 。作为新手学习使用。 public enum HeroStatus { idle = 0, //空闲 attack, //攻击 other, //其他 hit, //受击 die, //死亡 defense, //防御 cast, //施法 miss, //闪避 seriousInjury, //重伤 move, //移动 exit, //获取下一个状态 MAX, } public class hero : MonoBehaviour { public UISpriteAnimation m_spriteAnimation = null; public HeroStatus m_staus = HeroStatus.exit; //身体碰撞盒 public BoxCollider m_bodyBC = null; public string m_name = ""; public AttackCrash m_attackCrash = null; public byte m_posIndex = 0; void Awake() { m_spriteAnimation = transform.GetComponent(); m_bodyBC = transform.GetComponent(); } // Use this for initialization void Start () { m_spriteAnimation.AddFrameCallBack("attack", 1, AttackCallBack); m_spriteAnimation.AddFrameCallBack("attack", 4, AttackCallBack); m_spriteAnimation.AddFrameCallBack("attack", 7, AttackCallBack); } public float m_speed = 1f; public float m_offset = 0.5f; public Vector3 m_destination = Vector3.zero; public List m_actionList = new List(); // Update is called once per frame void Update () { switch (m_staus) { case HeroStatus.idle: //空闲状态 if (m_actionList.Count > 0) m_staus = HeroStatus.exit; break; case HeroStatus.attack: if (!m_spriteAnimation.isPlaying) { //攻击动画播放完毕 m_staus = HeroStatus.exit; } break; case HeroStatus.defense: transform.position = Vector3.MoveTowards(transform.position, m_destination, m_speed * Time.deltaTime); if (transform.position == m_destination) m_staus = HeroStatus.exit; break; case HeroStatus.hit: transform.position = Vector3.MoveTowards(transform.position, m_destination, m_speed * Time.deltaTime); if (transform.position == m_destination) m_staus = HeroStatus.exit; break; case HeroStatus.die: break; case HeroStatus.cast: break; case HeroStatus.miss: break; case HeroStatus.seriousInjury: break; case HeroStatus.move: transform.position = Vector3.MoveTowards(transform.position, m_destination, m_speed * Time.deltaTime); if (transform.position == m_destination) m_staus = HeroStatus.exit; break; case HeroStatus.exit: //获取下一个状态 if (m_actionList.Count > 0) { string str = "idle"; switch(m_actionList[0].status) { case HeroStatus.move: str = "idle"; break; default: str = Enum.GetName(typeof(HeroStatus), m_actionList[0].status); break; } m_spriteAnimation.namePrefix = str; m_spriteAnimation.loop = m_actionList[0].loop; m_destination = m_actionList[0].destinationMove; m_speed = m_actionList[0].speed; m_spriteAnimation.ResetToBeginning(); m_staus = m_actionList[0].status; m_actionList.RemoveAt(0); } else { m_spriteAnimation.namePrefix = Enum.GetName(typeof(HeroStatus), HeroStatus.idle); m_spriteAnimation.loop = true; m_spriteAnimation.ResetToBeginning(); m_staus = HeroStatus.idle; } break; // case HeroStatus.moveback: // //transform.position = Vector3.SmoothDamp(transform.position, destinationMove, ref cameraVelocity, smoothTime); // transform.position = Vector3.MoveTowards(transform.position, destinationMove, m_speed * Time.deltaTime); // if (transform.position == destinationMove) // m_staus = HeroStatus.idle; // break; } } public void SetPosition(byte pos, float x, float y) { m_posIndex = pos; transform.localPosition = new Vector3(x, y); } public void AttackCallBack() { //创建攻击特效 A攻击B B掉血222 B反击A闪避 UnityEngine.Object sourceObj = Resources.Load("AttackCrash"); GameObject go = UnityEngine.Object.Instantiate(sourceObj) as GameObject; go.transform.parent = transform; go.transform.localScale = Vector3.one; go.transform.localPosition = new Vector3(-70, 0, 0); } private void OnCollisionEnter(Collision co) { //进入碰撞 Debug.Log("进入碰撞!"); UnityEngine.Object sourceObj = Resources.Load("Effect"); GameObject go = UnityEngine.Object.Instantiate(sourceObj) as GameObject; go.transform.parent = transform; go.transform.localScale = Vector3.one; go.transform.localPosition = new Vector3(0, 0, 0); //Defense(); Hit(); } public void Attack(GameObject aims) { ActionData tmpAD = new ActionData(); tmpAD.status = HeroStatus.move; tmpAD.loop = true; UISprite tmpS = transform.GetComponent(); tmpAD.destinationMove = GameObject.Find("UI Root/Camera").transform.TransformPoint(new Vector3(aims.transform.localPosition.x + (tmpS.width/2), aims.transform.localPosition.y)); tmpAD.speed = Vector3.Distance(transform.position, tmpAD.destinationMove) * 4; //4/1秒到达目的地 m_actionList.Add(tmpAD); ActionData tmpAD1 = new ActionData(); tmpAD1.status = HeroStatus.attack; tmpAD1.loop = false; tmpAD1.destinationMove = Vector3.zero; tmpAD1.speed = 0; m_actionList.Add(tmpAD1); ActionData tmpAD2 = new ActionData(); tmpAD2.status = HeroStatus.move; tmpAD2.loop = true; tmpAD2.destinationMove = transform.position; tmpAD2.speed = Vector3.Distance(tmpAD.destinationMove, tmpAD2.destinationMove) * 4; //4/1秒到达目的地 m_actionList.Add(tmpAD2); } public void Defense() { ActionData tmpAD = new ActionData(); tmpAD.status = HeroStatus.defense; tmpAD.loop = false; tmpAD.destinationMove = GameObject.Find("UI Root/Camera").transform.TransformPoint(new Vector3(transform.localPosition.x - 25, transform.localPosition.y)); tmpAD.speed = 0.25f; //4/1秒到达目的地 m_actionList.Add(tmpAD); ActionData tmpAD1 = new ActionData(); tmpAD1.status = HeroStatus.move; tmpAD1.loop = false; tmpAD1.destinationMove = transform.position; tmpAD1.speed = 0.8f; //4/1秒到达目的地 m_actionList.Add(tmpAD1); } public void Hit() { ActionData tmpAD = new ActionData(); tmpAD.status = HeroStatus.hit; tmpAD.loop = false; tmpAD.destinationMove = GameObject.Find("UI Root/Camera").transform.TransformPoint(new Vector3(transform.localPosition.x - 25, transform.localPosition.y)); tmpAD.speed = 0.3f; //4/1秒到达目的地 m_actionList.Add(tmpAD); ActionData tmpAD1 = new ActionData(); tmpAD1.status = HeroStatus.move; tmpAD1.loop = false; tmpAD1.destinationMove = transform.position; tmpAD1.speed = 0.8f; //4/1秒到达目的地 m_actionList.Add(tmpAD1); } public void Idle() { m_spriteAnimation.namePrefix = Enum.GetName(typeof(HeroStatus), HeroStatus.idle); m_spriteAnimation.loop = true; m_spriteAnimation.ResetToBeginning(); m_staus = HeroStatus.idle; } public void Move() { // //transform.GetComponent().depth = 99; // GameObject go = GameObject.Find("enemy").gameObject; // destinationMove = GameObject.Find("UI Root/Camera").transform.TransformPoint(new Vector3(go.transform.localPosition.x + 98,go.transform.localPosition.y,go.transform.localPosition.z)); // m_speed = Vector3.Distance(transform.position, destinationMove) * 4; //4/1秒到达目的地 // m_staus = HeroStatus.moveto; // m_spriteAnimation.namePrefix = Enum.GetName(typeof(HeroStatus), HeroStatus.idle); // m_spriteAnimation.loop = true; // m_spriteAnimation.ResetToBeginning(); }
2022-07-08 16:27:29 28.62MB Unity
1
5.6api文档
2022-06-16 10:53:47 244.76MB unity3d api 帮助文档
1
Unity5.0的一个双足动作资源包,在Assetstore上面下的,亲测可用,还是挺好的一个资源
2022-06-08 19:01:30 7.2MB Unity5.0
1
代码 Space Shooter 源码(使用unity5.0和新UI系统)代码 Space Shooter 源码(使用unity5.0和新UI系统)代码 Space Shooter 源码(使用unity5.0和新UI系统)代码 Space Shooter 源码(使用unity5.0和新UI系统)代码 Space Shooter 源码(使用unity5.0和新UI系统)代码 Space Shooter 源码(使用unity5.0和新UI系统)代码 Space Shooter 源码(使用unity5.0和新UI系统)代码 Space Shooter 源码(使用unity5.0和新UI系统)代码 Space Shooter 源码(使用unity5.0和新UI系统)代码 Space Shooter 源码(使用unity5.0和新UI系统)代码 Space Shooter 源码(使用unity5.0和新UI系统)代码 Space Shooter 源码(使用unity5.0和新UI系统)代码 Space Shooter 源码(使用unity5.0和新UI系统)代码 Space Shooter 源码
2022-05-14 11:04:40 17.43MB 源码软件 ui 代码SpaceShooter
Unity游戏源码,简单的demo , 适合学习和二次开发 。 是整个完整的项目压缩包 , unity5.6.0f3版本开发的 , 使用新版本编译器请自行升级编译器设置就行 , C#语言的! C#语言的!! C#语言的!!! 重要的事说三遍!!!! 直接打开就行了,无需其他操作 , 使用2021.2.8f1c1版本编译器正常运行 , 其他版本的编译器没测试 , 应该也可以。 需要其他类型游戏源码可以联系我 , 存量很多 , 量大从优 , CSDN上面自动定价 需要便宜点也可以联系我修改价格 , QQ:168647474
2022-04-18 13:06:18 357.26MB 游戏 cocos2d 游戏引擎
Unity 资源包 五个都市角色模型带动画 仅供分享其他概不负责
2022-04-17 21:08:46 48.69MB Unity模型
1
Shader入门源码,unity5.3.4
2022-04-11 09:07:01 275.36MB unity 游戏引擎
1
业界证实的GPU加速HAP视频编解码器的统一回放解决方案. 业界公认的GPU加速了统一的HAP视频编解码器重放解决方案. 特征: -(新)10k@50 fps回放 -(新)统一2017年支助 -(新)2个视频分辨率的非倍数 -(新)播放速度控制 -硬件加速HAP视频播放,无需安装任何外部编解码器。支持HAP和HAPQ。 -CPU/内存使用率低。在GPU上解压缩帧。 -播放4k@120 fps或8k@60 fps视频,同时播放多个视频。极快的帧精确搜索。 -带有Hap Alpha和Hap Q Alpha编解码器的透明视频。第一个插件,支持HAPQ阿尔法在统一。 -分块HAP支持更快的多线程解码。 -与大多数图形接口一起工作:DX9、DX 11、OpenGL、桌面平台上的金属。DX 12在路上! -支持32位和64位构建!甚至在OSX上! -通过统一本地音频插件和音频源输出音频。 -如果SSD不够快,可以预加载视频到内存 -适合程序员和艺术家:C#API以及IMGUI/uGUI包装器。 -典型使用场景的示例场景。 -免费演示版(以上链接) 本资产版本的要求: -团结5.x或团结2017.x -Windows 7/8/10 -OS X 10.9及以上
2022-04-02 13:52:57 343.28MB Unity5.6.3或更高的版本
1
Unity5.5精品珍藏级汉堡餐厅经营游戏源码Top Burger Chef英文版源码下载,完整可运营版本。支持安卓+IOS 双端版本 +windows版本 C#语言开发。
2022-03-31 16:06:28 111.54MB Unity5.5精品珍藏级汉堡餐
地形天空 Standard Assets。
2022-03-18 10:27:36 181.83MB 地形天空
1