Воскресенье, 17 Ноября 2024, 10:35

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Вопрос-[ответ] по Unity
QWER56Дата: Понедельник, 09 Августа 2010, 10:58 | Сообщение # 1
старожил
Сейчас нет на сайте
Вопрос-[Ответ] по Unity3d

  • База скриптов Unity3d
  • Курс Уроков по Unity 3D от Alcatraz

    ConsMark - поисковик по интернет магазинам.

    Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54
  • AlastarДата: Пятница, 19 Июля 2013, 21:07 | Сообщение # 4321
    постоянный участник
    Сейчас нет на сайте
    Adom, все зависит от архитектуры твоего сервера, мы ж даже не знаем каким образом у тебя создается ГО игрока.

    Big Boobs (+18 only!)
    AdomДата: Пятница, 19 Июля 2013, 21:10 | Сообщение # 4322
    Печенька!
    Сейчас нет на сайте
    ааа блин забыл вот
    Это спавн игроков
    /*
    * This file is part of the Unity networking tutorial by M2H (http://www.M2H.nl)
    * The original author of this code Mike Hergaarden, even though some small parts
    * are copied from the Unity tutorials/manuals.
    * Feel free to use this code for your own projects, drop me a line if you made something exciting!
    */
    #pragma strict

    public var playerPrefab : Transform;

    function OnServerInitialized(){
    Spawnplayer();
    }

    function OnConnectedToServer(){
    Spawnplayer();
    }

    function Spawnplayer(){

    var myNewTrans : Transform = Network.Instantiate(playerPrefab, transform.position, transform.rotation, 0);

    }

    function OnPlayerDisconnected(player: NetworkPlayer) {
    Debug.Log("Clean up after player " + player);
    Network.RemoveRPCs(player);
    Network.DestroyPlayerObjects(player);
    }

    function OnDisconnectedFromServer(info : NetworkDisconnection) {
    Debug.Log("Clean up a bit after server quit");
    Network.RemoveRPCs(Network.player);
    Network.DestroyPlayerObjects(Network.player);

    /*
    * Note that we only remove our own objects, but we cannot remove the other players
    * objects since we don't know what they are; we didn't keep track of them.
    * In a game you would usually reload the level or load the main menu level anyway ;).
    *
    * In fact, we could use "Application.LoadLevel(Application.loadedLevel);" here instead to reset the scene.
    */
    Application.LoadLevel(Application.loadedLevel);
    }
    а это сам сервер
    /*
    * This file is part of the Unity networking tutorial by M2H (http://www.M2H.nl)
    * The original author of this code Mike Hergaarden, even though some small parts
    * are copied from the Unity tutorials/manuals.
    * Feel free to use this code for your own projects, drop me a line if you made something exciting!
    */
    #pragma strict

    var connectToIP : String = "127.0.0.1";
    var connectPort : int = 25001;

    //Obviously the GUI is for both client&servers (mixed!)
    function OnGUI ()
    {

    if (Network.peerType == NetworkPeerType.Disconnected){
    //We are currently disconnected: Not a client or host
    GUILayout.Label("Connection status: Disconnected");

    connectToIP = GUILayout.TextField(connectToIP, GUILayout.MinWidth(100));
    connectPort = parseInt(GUILayout.TextField(connectPort.ToString()));

    GUILayout.BeginVertical();
    if (GUILayout.Button ("Connect as client"))
    {
    //Connect to the "connectToIP" and "connectPort" as entered via the GUI
    //Ignore the NAT for now
    Network.useNat = false;
    Network.Connect(connectToIP, connectPort);
    }

    if (GUILayout.Button ("Start Server"))
    {
    //Start a server for 32 clients using the "connectPort" given via the GUI
    //Ignore the nat for now
    Network.useNat = false;
    Network.InitializeServer(32, connectPort);
    }
    GUILayout.EndVertical();


    }else{
    //We've got a connection(s)!


    if (Network.peerType == NetworkPeerType.Connecting){

    GUILayout.Label("Connection status: Connecting");

    } else if (Network.peerType == NetworkPeerType.Client){

    GUILayout.Label("Connection status: Client!");
    GUILayout.Label("Ping to server: "+Network.GetAveragePing( Network.connections[0] ) );

    } else if (Network.peerType == NetworkPeerType.Server){

    GUILayout.Label("Connection status: Server!");
    GUILayout.Label("Connections: "+Network.connections.length);
    if(Network.connections.length>=1){
    GUILayout.Label("Ping to first player: "+Network.GetAveragePing( Network.connections[0] ) );
    }
    }

    if (GUILayout.Button ("Disconnect"))
    {
    Network.Disconnect(200);
    }
    }


    }

    // NONE of the functions below is of any use in this demo, the code below is only used for demonstration.
    // First ensure you understand the code in the OnGUI() function above.

    //Client functions called by Unity
    function OnConnectedToServer() {
    Debug.Log("This CLIENT has connected to a server");
    }

    function OnDisconnectedFromServer(info : NetworkDisconnection) {
    Debug.Log("This SERVER OR CLIENT has disconnected from a server");
    }

    function OnFailedToConnect(error: NetworkConnectionError){
    Debug.Log("Could not connect to server: "+ error);
    }

    //Server functions called by Unity
    function OnPlayerConnected(player: NetworkPlayer) {
    Debug.Log("Player connected from: " + player.ipAddress +":" + player.port);
    }

    function OnServerInitialized() {
    Debug.Log("Server initialized and ready");
    }

    function OnPlayerDisconnected(player: NetworkPlayer) {
    Debug.Log("Player disconnected from: " + player.ipAddress+":" + player.port);
    }

    // OTHERS:
    // To have a full overview of all network functions called by unity
    // the next four have been added here too, but they can be ignored for now

    function OnFailedToConnectToMasterServer(info: NetworkConnectionError){
    Debug.Log("Could not connect to master server: "+ info);
    }

    function OnNetworkInstantiate (info : NetworkMessageInfo) {
    Debug.Log("New object instantiated by " + info.sender);
    }

    function OnSerializeNetworkView(stream : BitStream, info : NetworkMessageInfo)
    {
    //Custom code here (your code!)
    }

    /*
    The last networking functions that unity calls are the RPC functions.
    As we've added "OnSerializeNetworkView", you can't forget the RPC functions
    that unity calls..however; those are up to you to implement.

    @RPC
    function MyRPCKillMessage(){
    //Looks like I have been killed!
    //Someone send an RPC resulting in this function call
    }
    */
    KiraДата: Пятница, 19 Июля 2013, 21:23 | Сообщение # 4323
    заслуженный участник
    Сейчас нет на сайте
    Есть код
    #if UNITY_EDITOR
    EditMode__CreateCollider();
    #else
    UpdateCollider();
    #endif

    почему UpdateCollider() зеленного цвета, словно коммент?
    И я так понимаю что в редакторе выполниться :EditMode__CreateCollider();
    а в билде UpdateCollider(); ?

    Добавлено (19.07.2013, 21:23)
    ---------------------------------------------
    И есть еще
    /// <summary>
    /// Gets or sets the sprite identifier.
    /// </summary>

    В итоге при на ведении на переменную появляется надпись, как это называется и где почитать?


    Unity3d разработчик на С#. Лучшее спасибо + в репу.
    "Безумие: делать одно и то же снова и снова, и ждать при этом разных результатов".
    "Человек, который никогда не ошибался никогда не пробовал ничего нового".
    "Если человек может спокойно управлять автомобилем во время поцелуя красивой девушки, значит он уделяет поцелую недостаточно внимания”. Альберт Эйнштейн
    pixeyeДата: Пятница, 19 Июля 2013, 21:29 | Сообщение # 4324
    Red Winter Software
    Сейчас нет на сайте
    Цитата (Kira)
    почему UpdateCollider() зеленного цвета, словно коммент?


    таким образом редактор визуально показывает тебе что сейчас у тебя платформа UNITY_EDITOR и то что "зеленое" работать не будет.

    Цитата (Kira)
    В итоге при на ведении на переменную появляется надпись, как это называется и где почитать?


    КЛАЦ


    ACTORS - мой фреймворк на Unity
    Until We Die - игра над которой работаю

    AdomДата: Пятница, 19 Июля 2013, 21:30 | Сообщение # 4325
    Печенька!
    Сейчас нет на сайте
    Помогите !
    KiraДата: Пятница, 19 Июля 2013, 21:40 | Сообщение # 4326
    заслуженный участник
    Сейчас нет на сайте
    Цитата (Omlette)
    Я прочитал 400 страниц Шилдта (учебник с#) и никак не могу применять полученные знания в юньке.

    Еще почитай патерны(или шаблоны) проектирования. ну и чужой код.
    Цитата (Omlette)
    Kira, тогда как сделать ссылку на первую..? Что-то не врубаюсь

    unsafe

    Добавлено (19.07.2013, 21:40)
    ---------------------------------------------
    pixeye, спс happy


    Unity3d разработчик на С#. Лучшее спасибо + в репу.
    "Безумие: делать одно и то же снова и снова, и ждать при этом разных результатов".
    "Человек, который никогда не ошибался никогда не пробовал ничего нового".
    "Если человек может спокойно управлять автомобилем во время поцелуя красивой девушки, значит он уделяет поцелую недостаточно внимания”. Альберт Эйнштейн
    Fr0sTДата: Суббота, 20 Июля 2013, 00:29 | Сообщение # 4327
    постоянный участник
    Сейчас нет на сайте
    White9,
    Fr0sT, а ты moveDirection задаёшь в таком виде "vector3 (0,0,0)"? )

    Ну я так его задаю moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));




    Knight1032Дата: Суббота, 20 Июля 2013, 00:55 | Сообщение # 4328
    заслуженный участник
    Сейчас нет на сайте
    Как синхронизировать анимацию по сети?

    Да, я программист, дизайнер, сценарист,
    Я сам себе издатель и сам себе игрок...
    White9Дата: Суббота, 20 Июля 2013, 11:48 | Сообщение # 4329
    заслуженный участник
    Сейчас нет на сайте
    Fr0sT, если у тебя просто управление персонажем с помощью мышки, то попробуй взять часть кода отсюда
    http://docs.unity3d.com/Documentation/ScriptReference/CharacterController.Move.html
    А так даже не знаю что там может не работать...
    seamanДата: Суббота, 20 Июля 2013, 12:14 | Сообщение # 4330
    старожил
    Сейчас нет на сайте
    Цитата
    Ну я так его задаю moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));

    Естественно Вам и выдает ошибку. В мануале что написано: "Logs an error if the forward direction is zero." Ну а у Вас этот вектор в большинстве случаев и будет нулевым (если мышку не двигаете). Проверяйте его на == 0 и только если не равен делайте LookRotation
    AdomДата: Суббота, 20 Июля 2013, 15:28 | Сообщение # 4331
    Печенька!
    Сейчас нет на сайте
    Вот сделал управление для мультиплеера но почему никто не может двигаться.
    Вот скрипт

    using UnityEngine;
    using System.Collections;

    public class D : MonoBehaviour {
    public Transform Player;
    public void Awake(){
    if (!networkView.isMine)
    {
    enabled = false;
    }
    }
    // Use this for initialization
    void Start () {

    }
    // Update is called once per frame
    void Update () {
    if(Input.GetKey(KeyCode.W)){
    Player.Translate(0,0,1 *1);
    }
    //
    if(Input.GetKey(KeyCode.S)){
    Player.Translate(0,0,-1 *1);
    }
    }
    }
    zisXДата: Суббота, 20 Июля 2013, 19:20 | Сообщение # 4332
    Neto Zis
    Сейчас нет на сайте
    Я создаю небольшой проект fps и хотел в нем сделать декали написал небольшой код -

    RaycastHit _hit;

    if (Physics.Raycast(_camTransform.position, _direction, out _hit, Range))

    {
    if (_hit.collider.tag == "DecalOn")
    {
    Instantiate(decalPrefab, _hit.point, Quaternion.FromToRotation(Vector3.up, _hit.normal));
    }
    }

    все сделал,настроил скрипт в editor ,но когда я стреляю декаль создается немного внутри обьектов,т.е. когда я хожу и двигаю камерой декаль то пропадает то появляется ,помоги хотел узнать можно ли сделать так что бы декаль создавалась на не большом расстояние от обьекта?

    Добавлено (20.07.2013, 19:20)
    ---------------------------------------------
    Нашёл,решение:создал куб,удалил у него меш,и оставил только коллайдер ,нажал на кнопку это триггер,сделал декаль дочерним к кубу,куб настроил под декаль и опустил немного в низ,создал новый префаб,PROFIT!!!


    Man-o-WarДата: Воскресенье, 21 Июля 2013, 16:04 | Сообщение # 4333
    Der Arbaletös Creatio
    Сейчас нет на сайте
    Хм, такой вопросец. Как в Юнити можно работать с посторонними файлами?(Текстовыми например)?

    В чем разница между уткой, господа?
    KiraДата: Воскресенье, 21 Июля 2013, 16:25 | Сообщение # 4334
    заслуженный участник
    Сейчас нет на сайте
    Man-o-War, Вот так можно сохранять скрипт унаследованный от ScriptableObject
    Код

    public static class CustomAssetUtility
    {
         public static void CreateAsset<T>() where T : ScriptableObject
         {
             T asset = ScriptableObject.CreateInstance<T>();

             string path = AssetDatabase.GetAssetPath(Selection.activeObject);
             if (path == "")
             {
                 path = "Assets";
             }
             else if (Path.GetExtension(path) != "")
             {
                 path = path.Replace(Path.GetFileName(AssetDatabase.GetAssetPath(Selection.activeObject)), "");
             }

             string assetPathAndName = AssetDatabase.GenerateUniqueAssetPath(path + "/New " + typeof(T).ToString() + ".asset");

             AssetDatabase.CreateAsset(asset, assetPathAndName);

             AssetDatabase.SaveAssets();
             EditorUtility.FocusProjectWindow();
             Selection.activeObject = asset;
         }
    }

    ну или
    Код

    if (!File.Exists(path))
             {
                 // Создание файла и запись в него
                 using (StreamWriter sw = File.CreateText(path))
                 {
                     sw.WriteLine("Hello");
                     sw.WriteLine("World");
                 }
             }
       
             // Открываем файл для чтения и читаем из него все строки
             using (StreamReader sr = File.OpenText(path))
             {
                 string s = "";
                 while ((s = sr.ReadLine()) != null)
                 {
                     Debug.Log(s);
                 }
             }


    Unity3d разработчик на С#. Лучшее спасибо + в репу.
    "Безумие: делать одно и то же снова и снова, и ждать при этом разных результатов".
    "Человек, который никогда не ошибался никогда не пробовал ничего нового".
    "Если человек может спокойно управлять автомобилем во время поцелуя красивой девушки, значит он уделяет поцелую недостаточно внимания”. Альберт Эйнштейн
    ЛевшаДата: Воскресенье, 21 Июля 2013, 16:40 | Сообщение # 4335
    почти ветеран
    Сейчас нет на сайте
    Цитата (Man-o-War)
    Как в Юнити можно работать с посторонними файлами?(Текстовыми например)?

    Методы WWW (это для загрузки) и parse (для преобразования текста)
    Загруженные форматы - .тхт .html .php - все будут читаться как текстовые.
    В некоторых случаях можно понимать форматирование (html)


    X.cor.R (Prologue)
    Fr0sTДата: Воскресенье, 21 Июля 2013, 18:10 | Сообщение # 4336
    постоянный участник
    Сейчас нет на сайте
    А как менять прозрачность воды?Через код можно?



    KiraДата: Воскресенье, 21 Июля 2013, 19:36 | Сообщение # 4337
    заслуженный участник
    Сейчас нет на сайте
    Fr0sT, Все манипуляции можно делать через код.

    Unity3d разработчик на С#. Лучшее спасибо + в репу.
    "Безумие: делать одно и то же снова и снова, и ждать при этом разных результатов".
    "Человек, который никогда не ошибался никогда не пробовал ничего нового".
    "Если человек может спокойно управлять автомобилем во время поцелуя красивой девушки, значит он уделяет поцелую недостаточно внимания”. Альберт Эйнштейн
    NovatorvladДата: Воскресенье, 21 Июля 2013, 22:04 | Сообщение # 4338
    постоянный участник
    Сейчас нет на сайте
    Цитата (Man-o-War)
    Хм, такой вопросец. Как в Юнити можно работать с посторонними файлами?(Текстовыми например)?

    Как и в самом C#.


    Девбложек
    Man-o-WarДата: Воскресенье, 21 Июля 2013, 23:05 | Сообщение # 4339
    Der Arbaletös Creatio
    Сейчас нет на сайте
    лол, сократил у кубика Scale в одном из измерений до нуля, и получился плоский спрайтик. Соответственно вопросец, стоит создавать с помощью таких кубиков 2d игру, или слишком неэффективно выйдет?

    В чем разница между уткой, господа?
    ЛевшаДата: Понедельник, 22 Июля 2013, 00:04 | Сообщение # 4340
    почти ветеран
    Сейчас нет на сайте
    Я бы вообще примитивы из Юнити не использовал, там плоскость из 32 - х полигонов...
    В максе я делаю из 2 - х. smile


    X.cor.R (Prologue)
    Поиск:

    Все права сохранены. GcUp.ru © 2008-2024 Рейтинг