Well, maybe this answer is a bit late, if you want to set a price in anything that is not ether you will need to use an erc20, the uniswap token is an erc20, now if you want to have a fixed amount of that token (remember that contracts are not upgradable) you probably do something like this uniToken.transferFrom(msg.sender,to,amount);
remember that tokens can also have decimals and could be different from the ether decimals, if you want to use a non fixed amount you will need a chainlink oracle to provide you the price, as an example if you want to set an amount of 10 dollars in Uni you will need an oracle that returns you that value and then you can do the calculations and other things, other thing you need to know, in solidity the expression x ether
is just sugar syntax, what it does is return an uint 256 of x * 10^18, because that's how decimals are handled in tokens and ether, so if you want 0.5 ethers you can do this 0.5 ether
or this 5 * 10^17
or this 500000000000000000
and all represent the exact same number, that's a way to dont't loose presition with decimals, most tokens and ether use 18 decimals but there are some that doesn't, so is important to check that