Notifications
bg
S
SinZheng
0
Likes
1
Follower
0
Connections
All
Articles0
Games0
Showcases0
Column0
Jobs0
如何让两个刚体之间可以互相阻挡,但是不能互相推动呢?
在制作一个2d坦克大战,敌我双方坦克都设置了刚体属性与碰撞器,当敌我坦克运动发生碰撞时,不是我方推着敌人走,就是敌人推着我方走,我尝试锁定了刚体的约束,让x、y、z锁定,但是这样一来双方坦克就可以互相穿透。如果锁定单独的一方,则总是会有一方可以推动另一方(反之不行)。
请问各位前辈是如何解决这个的呢?

a year ago
碰撞器触发时, 己方和对方分别用质量float mass和速度vector3 velocity相乘计算出各自的动量, 用m*v.magnitude^2/2计算各自的动能. 然后动量守恒,能量守恒
a year ago
通过发射射线检测行走方向是否是敌人和墙壁。如果是敌人和墙壁,就关闭行走开关。发射点,和发射的射线数目,可以计算和参数设置。而且射线的碰撞检测和物体自身碰撞可以分开设置。
S
a year ago
Reply@learningai检查我方坦克运动方向,如果面向地方运动,则我方速度置零,否则速度不变。
而且有很多其他的问题,比如说敌方坦克有大有小,碰撞体积并不相同。如果用这样的方式来控制,就还要考虑一段和小坦克能擦肩而过的距离,就有可能撞到大坦克,完后这种判断不单单要做我方坦克一个单位,敌方坦克与敌方坦克互相也不能推动、敌方坦克主动撞击我方时也不应该推动,这个硬编码的工作量是不是就很脏了
S
a year ago
Reply@learningai检查我方坦克运动方向,如果面向地方运动,则我方速度置零,否则速度不变。
这个方式就是现在正在用的了,但是感觉这样实现很不“优雅”不是吗?
View More Comments
求助各位前辈:
如何做出类似战棋游戏中的这个效果,即点选屏幕上一个我方单位(3D物体)后,在该单位头顶弹出“移动、攻击、道具”菜单?
可以用UGUI来实现吗?谢谢各位不吝指导!

a year ago
ugui的canvas设置成world模式,设置成预设体,做个缩放动画。点击网格时,在网格位置生成这个预设体。至于逻辑实现就要看写代码的能力了
S
a year ago
Reply@YiwenYes, it's very simple. You just need to do a ray detection and set the location of your mouse click on it.
but how to put UI objects(which api can do it......) when the ray detected that i don't know……LOL
S
a year ago
Reply@YiwenYes, it's very simple. You just need to do a ray detection and set the location of your mouse click on it.
i'll try ur sug, thanks
S
a year ago
Reply@Li Qin我寻思UGUI也可以, 虽然有其他更好的方法, 我没需求也没研究过. 你现在是遇到了什么问题不会的吗?
已经知道怎么用镭射触发3d物体的事件了,那么该使用哪些api来在物体上弹出ui呢……这问题可能有些弱智,但是确实有点懵
View More Comments
感谢各位阅读这篇求助帖,我想要制作一个类似战争模拟器游戏的DEMO,大致如下:
1、游戏中提供一个选择单位的UI,玩家可以消耗资源点从中选择指定的单位,拖拽到游戏场景中。
2、玩家在拖拽单位后,可以通过在场景中“点选单位->画线”的方式,为单位规划移动路线,也可以通过“点选->右键“的方式,决定单位在何处使用何种技能。
3、一切布置妥当之后,点击”开始“就可以看到单位按照自己的规划去作战了。
第一个demo中不需要敌对势力,也就是说,只需要看到自己的小兵按照规划移动、做动作即可。也不需要”开始游戏“这类界面,只需要直接开始即可。
目前我用unity制作过几个小demo,会基本的操作技巧,自己本身是一位职业程序员,C#编程方面没有问题。简单的建模自己可以搞定,有建模功底,不吃素材库。
但是对这个demo有一点无从入手的感觉,我想知道我第一步应该怎么做,还需要掌握哪些技能才能开工?烦请各位朋友不吝赐教一二,十分感谢。

S
a year ago
Reply@lightli哈,你不是游戏程序员吧,你把美术准备齐全之后拿程序连通你设定那个逻辑,如果你更擅长程序那从程序开始奋斗吧
嗯,感谢支持!
S
a year ago
Reply@Yan Jin模型可以用cube来代替,算法就是用raycast检测鼠标在场景中的位置。real-time的话用line renderer来画出来。士兵的移动则是基于你line renderer的每个节点,移动过去
感谢,会了解一下相关的api和实现,非常谢谢你提点的知识点。
YJ
Yan Jin
Solution Engineer
a year ago
模型可以用cube来代替,算法就是用raycast检测鼠标在场景中的位置。real-time的话用line renderer来画出来。士兵的移动则是基于你line renderer的每个节点,移动过去
YJ
Yan Jin
Solution Engineer
a year ago
第一步,UI我就不说了
View More Comments
About Me
No description
See more
Skills
No skills added yet
Certifications (0)
Import
See all
SinZheng's liked projects (0)
No likes yet
Following (0)
Not following anyone yet
Follower (1)
Following Companies (0)
Not following anyone yet