# 修改单位碰撞体积大小

function SetUnitCollisionSize takes unit u, real size returns nothing 

1
2

# 描述

跟物编一样 修改单位的碰撞体积 会刷新寻路, 依然受到魔兽碰撞上限的限制

就是 当你 size 填 512 的时候 在远距离走路时 魔兽寻路 会按照 512 的碰撞体积去搜索路线, 在近距离时 魔兽会按照最高上限 估计 128 去搜索寻路 单位实际碰撞 也最高只有 128

# 参数

类型 名字 说明
单位 u 填指定单位
实数 size 碰撞大小

# 例子


// 执行以下函数 你会看到 2堆人 按照不同的碰撞大小进行排列。

function test takes nothing returns nothing
    local integer i = 0
    local unit u 
    loop 
        exitwhen i == 100
        set i = i + 1 
        set u = CreateUnit(Player(0), 'hpea', 0, 0, 0)

        call SetUnitCollisionSize(u, 256.00) //修改碰撞

        call SetUnitPosition(u, 0, 0) //刷新单位位置
    endloop

    set i = 0 


    loop 
        exitwhen i == 100
        set i = i + 1 
        set u = CreateUnit(Player(0), 'hpea', 2000, 0, 0)

        call SetUnitCollisionSize(u, 8.00) //修改碰撞

        call SetUnitPosition(u, 2000, 0) //刷新单位位置
    endloop

endfunction


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32


local japi = require 'jass.japi'
local jass = require 'jass.common'


-- 执行以下函数 你会看到 2堆人 按照不同的碰撞大小进行排列。
function test()
    local u 
    for i = 1, 100 do 
        u = jass.CreateUnit(jass.Player(0), string.unpack('>I4', 'hpea'), 0, 0, 0)

        japi.SetUnitCollisionSize(u, 8) --修改碰撞

        jass.SetUnitPosition(u, 0, 0) --刷新单位位置
    end


   for i = 1, 100 do 
        u = jass.CreateUnit(jass.Player(0), string.unpack('>I4', 'hpea'), 2000, 0, 0)

        japi.SetUnitCollisionSize(u, 256) --修改碰撞

        jass.SetUnitPosition(u, 2000, 0) --刷新单位位置
    end
end

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27