Jump to content

Water и взаимодействие


Recommended Posts

Posted

Подскажите пж народ ) я новичок !в общем проблема такая !есть water и есть шар ) я хочу что бы шар плавал ) он у меня тонет либо улетает в не бытие! подскажите в каком направлении идти?

Posted (edited)

как минимум внимательно посмотрите и повторите это. тонет скорее всего из-за того что вы не назначили rigidbody и не добавили физическую воду. 

 

Edited by sevas55
  • Like 1
Posted

Класс всё получилось )) А возможно ли как глобально добавить его на всю воду ?допустим что у меня типо водный мир! и надо физику на воду растягивать?

Posted (edited)

Растягивать как по мне не очень эффективный способ.

У меня проект с плавающими дронами и лодками, я сделал бесконечную плавучесть так

Создаете физическую воду под размер объекта, который должен плавать на большие расстояния.

Назначаем на физическую воду скрипт и объект, который в ней плавает.

image.png.fafa2b91bd151bde2d95d7ee13c5ede0.png

Код WaterMover:

public class WaterMover : Component
{
	double z = 0;
	public Node NodeBoat;
	float watheight = 0f;
	ObjectWaterGlobal w;
  
	void Init()
	{
		z = node.WorldPosition.z;	
     	w = World.GetNodeByName("ObjectWaterGlobal") as ObjectWaterGlobal;
		w.FetchSteepnessQuality = ObjectWaterGlobal.STEEPNESS_QUALITY.HIGH;
	}

	void Update()
	{
		watheight = w.FetchHeight(new dvec3(NodeBoat.WorldPosition.x,NodeBoat.WorldPosition.y, 0));
		node.WorldPosition = new dvec3(NodeBoat.WorldPosition.x, NodeBoat.WorldPosition.y, z+watheight);
	}
}

По сути получается, что лодка плавает в бассейне с водой, который перемещается за самой лодкой.

Чтобы получить качку, можно немного менять координату z физической воды.

Если хотите чтобы качка совпадала с волнами глобальной воды, то z надо вычислять через функцию FetchHeight.

еще пример от разработчиков тут 

 

Edited by sevas55
  • Like 1
×
×
  • Create New...