我正在使用此资产中的oneShot Explosion_1:
https://assetstore.unity.com/packages/vfx/particles/particle-effects-1-90769
我想在x轴上旋转90°,但是如果我改变对象或其父对象的旋转,它对这个粒子系统没有影响.
我尝试过的:
velocity over lifetimesimulation space为worldgameobject与particle system gameobject与particle system一个parent object并尝试rotate那gameobject.3D Start Rotation.玩家是一个魔术师,当按下鼠标左键时可以用火球攻击敌人.
我使用的代码非常简单(在Update函数内部):
if (Input.GetMouseButton(0) && canShoot)
{
canShoot = false;
Invoke("AllowCanShoot", fireBreak);
Attack();
}
Run Code Online (Sandbox Code Playgroud)
canShoot是一种bool阻止玩家每帧攻击一次的东西.
AllowCanShoot是设定功能canShoot来true.
Attack() 是处理攻击的功能,与此问题无关.
当玩家靠近交易者时,我还有一个UI按钮出现在屏幕上.当玩家按下UI按钮时,他会攻击交易者.
我想要的是,他可以按下按钮而不会攻击他.
我不能禁用对玩家的攻击,因为敌人也可以到达交易者,然后玩家可能必须进行战斗.
我尝试的是:
canShoot bool为false,当UI Button按下时,但这不起作用,播放器仍在攻击,也许Update函数在UI Button函数之前执行?!在 Unity3D 2017 版中,您可以EventTriggers通过执行以下操作一次添加多个:
for (int i = 0; i < 20; i++)
{
EventTrigger.Entry pDown = new EventTrigger.Entry();
pDown.eventID = EventTriggerType.PointerDown;
pDown.callback.AddListener((eventdata) => { InventorySlotCopy(); });
slots[i].GetComponent<EventTrigger>().triggers.Add(pDown);
EventTrigger.Entry pUp = new EventTrigger.Entry();
pUp.eventID = EventTriggerType.PointerUp;
pUp.callback.AddListener((eventdata) => { InventorySlotInsert(); });
slots[i].GetComponent<EventTrigger>().triggers.Add(pUp);
}
Run Code Online (Sandbox Code Playgroud)
whereslots只是一个arrayof GameObjects,每个都有一个Image和一个EventTrigger附加到它。
然而,使用如以上在Unity3D版2019所导致添加这些相同的代码EventTriggers而不是在分配functions给Listener。
在 Unity2019 中是如何做到的?
我正在学习java,有人告诉我,您可以for loop使用enhanced for loop.
现在我有那个正常的for loop:
int[] array1 = {3, 6, 9, 12};
for (int i = 0; i < array1.length; i++)
{
System.out.println(array1[i]);
}
Run Code Online (Sandbox Code Playgroud)
而这个返回
3 6 9 12
正如预期的那样。
当我将它用作 a 时enhanced for loop,就像这样:
for (int i : array1)
{
System.out.println(array1[i]);
}
Run Code Online (Sandbox Code Playgroud)
它返回
12
然后我得到一个例外:
线程“main”中的异常 java.lang.ArrayIndexOutOfBoundsException:在 Tutorial.main(Tutorial.java:15) 处,长度为 4 的索引 6 越界